如何为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.pathPYTHONPATHsites信息。 这显示了模块和包装的物理位置。

这样做很痛苦,因为你必须在你导入的所有模块中进行所有导入的传递闭包。

作为替代方法,您可以使用-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

上一篇: How to do Makefile dependencies for python code

下一篇: Propagate Permissions to Javascript