我有一堆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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top