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