对于#4,与启动java并为您的应用使用jar文件最接近的是Python 2.6,executable zip files and directories中的一项新功能。
python myapp.zip
哪里myapp.zip是含有作为要执行的脚本文件时执行的文件__main__.py
一个拉链。你的软件包的依赖关系,也可以包含在文件中:
__main__.py
mypackage/__init__.py
mypackage/someliblibfile.py
你也可以执行一个鸡蛋,但咒语是不是很好:
# Bourn Shell and derivatives (Linux/OSX/Unix)
PYTHONPATH=myapp.egg python -m myapp
rem Windows
set PYTHONPATH=myapp.egg
python -m myapp
这使myapp.egg上Python路径并使用-m参数来运行模块。你myapp.egg可能会是这个样子:
myapp/__init__.py
myapp/somelibfile.py
和Python将运行__init__.py
(你应该检查你的应用程序的命令行使用__file__=='__main__'
)。
蛋文件只是ZIP文件,所以你也许可以添加__main__.py
到你的蛋用zip工具,并使其可执行在Python 2.6和像python myapp.egg
,而不是在PYTHONPATH环境变量设置上述咒语运行它。
上的可执行zip文件包括如何让他们直接执行与shebang更多信息,请Michael Foord's blog post on the subject找到。
我应该用什么来代替鸡蛋呢?这里是我关于鸡蛋的问题http://stackoverflow.com/questions/14902732/what-is-pastedeploy-and-do-i-need-to-learn-it-if-e-gs-in-python-are-considered-g – Green 2013-02-15 21:06:17
@YauhenYakimovich:该链接现在是一个停放的垃圾邮件域。也许值得编辑使用https://packaging.python.org/en/latest/wheel_egg/? – 2015-09-16 18:51:07
@ChrisAdams thnx – 2015-09-25 08:24:31