gpt4 book ai didi

python - 如何从多个脚本构建单个 python 文件?

转载 作者:IT老高 更新时间:2023-10-28 22:07:42 26 4
gpt4 key购买 nike

我有一个简单的 python 脚本,它可以导入我编写的各种其他模块(等等)。由于我的环境,我的 PYTHONPATH 很长。我也在使用 Python 2.4。

我需要做的是以某种方式打包我的脚本和所有不属于标准 python 的依赖项,这样我就可以将单个文件通过电子邮件发送到另一个我想要执行它的系统。我知道 python 的目标版本是相同的,但它在我在 Windows 上的 linux 上。否则我只会使用 py2exe。

理想情况下,我想发送一个 .py 文件,该文件以某种方式嵌入了所有必需的模块,但我会满足于自动构建一个我可以解压缩的 zip,所需的模块都在一个目录中。

我查看了各种包装解决方案,但似乎找不到合适的方法。我错过了什么吗?

[edit] 我似乎很不清楚我在追求什么。我基本上是在寻找像 py2exe 这样的东西,它会从给定的 python 脚本中生成一个文件(或两个文件),自动包含所有导入的模块。

例如,如果我有以下两个文件:

[\foo\module.py]
def example():
print "Hello"

[\bar\program.py]
import module
module.example()

然后我跑:

cd \bar
set PYTHONPATH=\foo
program.py

然后它将起作用。我想要的是能够说:

magic program.py

最后得到一个文件,或者可能是一个文件和一个 zip,然后我可以将其复制到 linux 并运行。我不想在目标 linux 系统上安装我的模块。

最佳答案

我发现这很有用:

http://blog.ablepear.com/2012/10/bundling-python-files-into-stand-alone.html

简而言之,您可以 .zip 模块并在其中包含一个 __main__.py 文件,这将使您能够像这样运行它:

python3 app.zip

由于我的应用很小,我从我的主脚本创建了一个链接到 __main__.py

附录:

您还可以通过在文件顶部添加一行来使 zip 在类 UNIX 系统上自执行。这对于使用 Python3 的脚本可能很重要。

echo '#!/usr/bin/env python3' | cat - app.zip > app
chmod a+x app

现在可以在不指定 python 的情况下执行

./app

关于python - 如何从多个脚本构建单个 python 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9002275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com