我已经了解了 .egg 文件的一些内容,并注意到它们在我的 lib 目录中,但是作为开发人员使用它们有什么优点和缺点吗?
我已经了解了 .egg 文件的一些内容,并注意到它们在我的 lib 目录中,但是作为开发人员使用它们有什么优点和缺点吗?
"在Python中,蛋就像Java中的JAR一样..."
Python蛋是一种将附加信息与Python项目捆绑在一起的方式,它允许在运行时检查和满足项目的依赖关系,同时也允许项目为其他项目提供插件。几种二进制格式都体现了蛋的特性,但最常见的是“.egg” zip文件格式,因为它很方便地用于分发项目。 所有这些格式都支持包括特定于包的数据、项目范围的元数据、C扩展和Python代码。
Python Eggs的主要优点是:
它们使类似于“Easy Install” Python包管理器的工具成为可能
.egg文件是Python包的“零安装”格式;无需构建或安装步骤,只需将其放在PYTHONPATH或sys.path中并使用它们(如果使用了C扩展或数据文件,则可能需要已安装的运行时)
它们可以包含软件包元数据,例如它们所依赖的其他蛋
它们允许“命名空间包”(仅包含其他包的包)拆分为单独的发行版(例如,zope。,twisted。,peak.*包可以作为单独的蛋进行分发,而不像普通包必须始终放在同一父目录下。这允许现在庞大的大型软件包被分发为单独的组件。)
它们允许应用程序或库指定所需库的版本,因此您可以在执行import twisted.internet之前,例如要求("Twisted-Internet>=2.0")。
它们是分发扩展或插件给可扩展应用程序和框架(例如Trac,自0.9b1起使用egg作为插件)的良好格式,因为egg运行时提供了简单的API来定位egg并查找其广告入口点(类似于Eclipse的“扩展点”概念)。
还有其他好处可从拥有标准化格式中获得,类似于Java的“jar”格式的好处。
-Adam
使用Egg文件是一种分发Python应用程序的很好方式。可以将其视为独立于平台的.deb文件,它将安装所有依赖项等内容。优点是易于最终用户使用。缺点是将应用程序打包成.egg文件可能会很麻烦。
除了.egg文件外,您还应提供另一种安装方式。有些人不喜欢使用egg文件,因为他们不喜欢软件程序安装任何它想要的软件。这些通常是系统管理员类型。