加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

解析python安装文件

发布时间:2020-12-20 13:30:56 所属栏目:Python 来源:网络整理
导读:我需要编写一个 python脚本来读取和解析设置python文件. setup包含一些变量和函数调用. 例: setup.pyx = 5mylist [ 1,2,3]myfunc(4)myfunc(5)myfunc(30)main.py.parse_setup('setup.py'). 我想解析设置文件并“看”定义了什么类型的变量以及调用什么类型的
我需要编写一个 python脚本来读取和解析设置python文件.
setup包含一些变量和函数调用.

例:

setup.py
x = 5
mylist [ 1,2,3]
myfunc(4)
myfunc(5)
myfunc(30)


main.py
.
parse_setup('setup.py')
.

我想解析设置文件并“看”定义了什么类型的变量以及调用什么类型的函数.
由于用python编写的安装文件,我认为最简单的方法是动态导入安装文件(动态因为安装文件路径是main的输入).

问题是导入失败,因为没有定义在setup.py中调用的myfucn().

有没有办法拦截setup.py中的myfunc()调用并执行我自己在main.py中定义的函数?

如果我想要执行的函数是成员函数怎么办?

任何人都可以想到一个更好的方法来提取设置文件中的数据,我真的不想一行一行地读取它.

谢谢!

解决方法

如果您的setup.py文件包含以下Python语句:

x = 5
mylist = [ 1,3]
y = myfunc(4)
z = myfunc(x)

你可以在main.py中做这样的事情来找出它定义的内容:

def myfunc(n):
    return n**2

def parse_setup(filename):
    globalsdict = {'__builtins__': None,'myfunc': myfunc}  # put predefined things here
    localsdict = {}  # will be populated by executed script
    execfile(filename,globalsdict,localsdict)
    return localsdict

results = parse_setup('setup.py')
print results  # {'y': 16,'x': 5,'z': 25,'mylist': [1,3]}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读