【发布时间】:2010-10-28 19:44:25
【问题描述】:
我认为以前没有人问过这个问题——我有一个包含许多不同 .py 文件的文件夹。我制作的脚本只使用了一些——但有些调用了其他的,我不知道所有正在使用的脚本。是否有一个程序可以获取使该脚本运行到一个文件夹所需的一切?
干杯!
【问题讨论】:
-
请不要重复发布相同的问题。
标签: python
我认为以前没有人问过这个问题——我有一个包含许多不同 .py 文件的文件夹。我制作的脚本只使用了一些——但有些调用了其他的,我不知道所有正在使用的脚本。是否有一个程序可以获取使该脚本运行到一个文件夹所需的一切?
干杯!
【问题讨论】:
标签: python
由于 Python 不是静态链接语言,因此这项任务将是一项颇具挑战性的任务。特别是如果您的某些代码使用eval(...) 或exec(...)。
如果您的脚本不是很大,我会将其移出,确保您的 python.exe 不会从该目录加载模块,并且会运行该脚本并添加缺少的模块,直到它工作为止。
如果您有多个这样的脚本,那么这种手动工作并不是真正可行的方法。但是在这种情况下,在一个目录中还有很多不同的 .py 文件并不是一种好的部署技术,您应该考虑将它们打包到 可安装 模块中并安装到您的 python 站点包中。
您仍然可以使用snakefood 包来查找我们的依赖项(已经讨论过here)。同样,它不能 100% 准确,但应该让您轻松开始。
【讨论】:
您应该能够从所谓的调用图
中提取所需的信息参见示例
此外,py2exe 将 python 调用转换为可执行文件,并在此过程中收集所有使用的模块。我认为py2exe是跨平台的
【讨论】:
我会尝试 2½ 个解决方案,一个是精心设计的,一个是 1½ 个快速而简单的:
os.utime *.py[co]? (re 表示法,而不是 glob)文件到昨天的访问时间,然后运行程序并收集所有最近的访问时间。先决条件:一个标记访问时间的文件系统(通过它自己和它的挂载选项)。glob 和 re 表示法中相同),运行程序,查看已创建的文件。先决条件:用户应具有对该文件夹的写入权限。【讨论】: