如何为Python代码做Makefile依赖
我有一堆C语言文件,这些文件是由一些Python程序集合生成的,这些程序有许多共享的Python模块,我需要在我的make系统中对此进行说明。
枚举需要运行哪个python程序来生成每个C文件是很容易的。 我找不到一个好的解决方案是确定这些程序依赖于哪些其他python文件。 我需要这个,所以如果一个共享的python文件改变,make会知道需要重新生成什么。
有没有一个好的系统来从一个Python源代码集合中产生make样式依赖规则?
模块查找器可以用来获取依赖关系图。
import
语句几乎是所有的依赖关系。 进口报表有两种相关形式:
import x, y, z
from x import a, b, c
您还需要用于构建sys.path
的PYTHONPATH
和sites
信息。 这显示了模块和包装的物理位置。
这样做很痛苦,因为你必须在你导入的所有模块中进行所有导入的传递闭包。
作为替代方法,您可以使用-v
选项来获取完整的导入和物理文件列表。 这会生成一个日志,您可以编辑到一个平面的依赖关系列表中。
例如,当我这样做
>>> import math
我在日志中看到了这一点
dlopen("/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so", 2);
import math # dynamically loaded from /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload/math.so
链接地址: http://www.djcxy.com/p/41937.html