我读过一些有关 .egg 文件的内容,并且在我的 lib 目录中注意到它们,但是作为开发人员使用它们有哪些优点/缺点?

有帮助吗?

解决方案

来自 Python 企业应用程序套件社区:

“鸡蛋之于 Python,就像罐子之于 Java……”

Python鸡蛋是将其他信息与Python项目捆绑在一起的一种方式,该项目允许在运行时检查和满足项目的依赖项,并允许项目为其他项目提供插件。有几种体现鸡蛋的二进制格式,但最常见的是“ .egg” Zipfile格式,因为它是分发项目的方便。所有格式支持包括包装特定数据,项目范围的元数据,C扩展和Python代码。

Python卵的主要好处是:

  • 它们支持“轻松安装”Python 包管理器等工具

  • .EGG文件是Python软件包的“零安装”格式;不需要构建或安装步骤,只需将它们放在PythonPath或Sys.Path上并使用它们(如果使用C扩展名或数据文件,则可能需要安装运行时)

  • 它们可以包含包元数据,例如它们依赖的其他鸡蛋

  • 他们允许“名称空间软件包”(仅包含其他软件包的软件包)分为单独的分布(例如佐佩。, ,扭曲。,峰。*包装可以作为单独的鸡蛋分配,与普通包裹不同,必须始终将其放置在同一父目录下。这允许现在将巨大的整体包装分配为单独的组件。)

  • 它们允许应用程序或库指定库的所需版本,以便您可以在进行进口扭曲之前,请求(“扭曲internet> = 2.0”)。

  • 它们是将扩展名或插件分配到可扩展的应用和框架(例如TRAC)的绝佳格式(例如,TRAC,使用鸡蛋为0.9B1时),因为鸡蛋运行时提供了简单的API来定位鸡蛋并找到其广告的入口点(相似Eclipse的“扩展点”概念)。

  • 具有标准化格式也可能带来其他好处,类似于Java的“ JAR”格式的好处。

-亚当

其他提示

一颗鸡蛋本身并不比适当的源释放更好。好的部分是依赖性处理。就像 debian 或 rpm 包一样,你可以说你依赖于其他鸡蛋,它们会自动安装(通过 pypi.python.org).

第二条评论:Egg 格式本身是一种二进制打包格式。仅包含 python 代码的普通 python 包最好作为“源版本”分发,因此“python setup.py sdist”会生成 .tar.gz。当上传到 pypi 时,这些通常也称为“鸡蛋”。

当你需要二元蛋时:当您捆绑一些 C 代码扩展时。然后,您将需要几个二进制 Egg(一个 32 位 Unix 的、一个 Windows 的等等)。

Eggs 是分发 Python 应用程序的一个非常好的方法。将其视为独立于平台的 .deb 文件,它将安装所有依赖项等。优点是最终用户易于使用。缺点是将应用程序打包为 .egg 文件可能很麻烦。

除了 .eggs 之外,您还应该提供替代安装方式。有些人不喜欢使用 Egg,因为他们不喜欢软件程序安装它想要的任何软件的想法。这些通常是系统管理员类型。

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

更多信息 这里.

无论您做什么,都不要停止以 tarball 的形式分发您的应用程序,因为对于具有软件包系统的操作系统来说,这是最简单的可打包格式。

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

更复杂的程序,例如由于需要各种模块和依赖项,Django 几乎需要 Egg。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top