如何创buildPython的蛋文件

我有Python的蛋文件的问题。

我有很多按代码组织的Python代码,我正尝试创buildegg文件。 我遵循指示 ,但它们很常见。

据说,看来我需要有一个setup.py文件。

  1. 你能告诉我什么我需要把setup.py文件和它应该驻留在哪里?
  2. 我想这足以创buildsetup.py,然后启动“setup.py bdist_egg”获取egg文件。 能否请你确认?
  3. 是否有可能只包含.pyc文件到蛋文件?
  4. 有.egg文件我怎么才能从它启动代码而不像java -jar <jar file>那样解java -jar <jar file>呢?

您正在阅读错误的文档。 你想这个: http : //peak.telecommunity.com/DevCenter/setuptools

  1. 创buildsetup.py在Python的标准库文档里的distutils文档中有介绍。 主要区别(python鸡蛋)是从setuptools import setup ,而不是distutils

  2. 是的。 那应该是对的。

  3. 我不这么认为。 pyc文件可以是版本和平台相关的。 您可能能够打开蛋(他们应该只是zip文件),并删除.py文件离开.pyc文件,但它不会被推荐。

  4. 我不确定。 这可能是“发展模式”。 或者你正在寻找一些“py2exe”或“py2app”模式?

对于#4来说,最接近于启动java并为您的应用程序提供jar文件的是Python 2.6中的一个新function,即可执行的zip文件和目录 。

 python myapp.zip 

其中myapp.zip是一个包含__main__.py文件的zip文件,该文件作为要执行的脚本文件执行。 您的软件包依赖关系也可以包含在文件中:

 __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放在Pythonpath上,并使用-m参数来运行一个模块。 您的myapp.egg可能如下所示:

 myapp/__init__.py myapp/somelibfile.py 

python会运行__init__.py __file__=='__main__' (你应该检查你的应用中的__file__=='__main__'命令行使用)。

鸡蛋文件只是zip文件,所以你可以用zip工具将__main__.py添加到你的egg文件中,并在python 2.6中执行它,并像python myapp.egg那样运行它,而不是上面的设置PYTHONPATH环境variables的咒语。

有关可执行zip文件的更多信息,包括如何使用shebang直接执行它们可以在Michael Foord的博客文章中find。

我想你应该使用python轮子来代替鸡蛋发行。

轮子是python分布的新标准,并且意在取代鸡蛋。 支持在pip> = 1.4和setuptools> = 0.8中提供。