2008-09-06 170 views

回答

29

Python Enterprise Application Kit community

“鸡蛋是蟒蛇的罐子到Java ......”

Python的蛋是用Python的 项目捆绑 附加信息的方式,它允许在运行时检查项目的 依赖关系,并且 满足允许项目为其他项目提供插件 。有几种 体现鸡蛋的二进制格式,但 最常见的格式是'.egg'zipfile 格式,因为这是一种方便的 用于分发项目。所有的 格式都支持包括 包特定数据,项目范围 元数据,C扩展和Python 代码。

Python的鸡蛋 的主要优点是:

  • 他们能够像工具“​​简易安装” Python包管理器

  • .egg文件是一个Python“零安装”的格式 包;没有构建或安装步骤是需要 ,只是把它们放在PYTHONPATH 或sys.path中,并用它们(可能需要 如果C扩展 或数据文件用于安装运行时)

  • 它们可以包括包的元数据,如它们依赖于

  • 其他蛋他们允许“命名包”(即只包含其他 套餐包)拆分成单独的 分布(如Zope的。,扭曲。, 高峰。*包可以分配为 单独的蛋,不像普通包 必须始终放在 相同的父目录下。这使得 现在什么都是巨大的单片包 被分配作为单独 组件)。

  • 它们允许应用程序或库指定需要的 版本的库,这样就可以 例如要求(“Twisted-Internet> = 2.0”) 在执行导入之前 twisted.internet。

  • 他们是一支伟大的格式分发扩展或插件 可扩展的应用程序和框架 (如Trac系统,它使用鸡蛋 插件为0。9B1),因为鸡蛋 运行时提供了简单的API来定位 鸡蛋和找到自己的广播条目 点(类似于Eclipse的 “扩展点”的概念)。

  • 还有其他的好处,可能来自标准化的 格式,类似于Java的“jar”格式的好处 。

- 亚当

+0

但是如果依赖Python包没有将二进制文件上传到PyPi呢? – Mitar 2012-06-15 15:24:04

2

.egg文件基本上都是部署的Python应用程序的好方法。您可以将其视为Java的.jar文件。

更多信息here

3

鸡蛋是发布python应用程序的好方法。把它想象成一个独立于平台的.deb文件,它将安装所有的依赖关系和内容。优点是对于最终用户来说很容易使用。缺点是将应用程序打包成.egg文件可能会很麻烦。

除了.eggs之外,您还应该提供另一种安装方式。有些人不喜欢使用鸡蛋,因为他们不喜欢软件程序安装任何软件的想法。这些通常倾向于是系统管理员类型。

1

不管你做什么,不停止分发您的应用程序,也作为一个压缩包,因为这是与包sysetem操作系统的最简单的装袋的格式。

1

对于简单的Python程序,你可能并不需要使用鸡蛋。分发原始的.py文件应该足够了;这就像分发GNU/Linux的源文件一样。您还可以使用各种操作系统“打包器”(如py2exe或py2app)为不同的操作系统创建.exe,.dmg或其他文件。

更复杂的程序,例如由于需要各种模块和依赖关系,Django几乎需要鸡蛋。本身

4

一个鸡蛋不超过一个适当的源代码版本更好。好的部分是依赖处理。像debian或者rpm包一样,你可以说你依赖于其他的蛋,它们会自动安装(通过pypi.python.org)。

第二评论:鸡蛋格式本身是二进制格式打包。只包含python代码的普通python包最好作为“源代码版本”发布,所以“python setup.py sdist”会导致.tar.gz。上传到pypi时,这些通常也被称为“鸡蛋”。

,你需要二进制鸡蛋:当你捆绑一些C代码扩展。那么你需要几个二进制的鸡蛋(一个32位的unix,一个窗口等)。

+0

但是如果依赖Python包没有将二进制文件上传到PyPi呢? – Mitar 2012-06-15 15:23:30

相关问题