我已经阅读了一些关于.egg文件,我注意到它们在我的lib目录中,但是作为开发人员使用它的优点/缺点是什么?将Python库/应用程序打包为.egg文件有什么优势?
回答
从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”格式的好处 。
- 亚当
.egg文件基本上都是部署的Python应用程序的好方法。您可以将其视为Java的.jar文件。
更多信息here。
鸡蛋是发布python应用程序的好方法。把它想象成一个独立于平台的.deb文件,它将安装所有的依赖关系和内容。优点是对于最终用户来说很容易使用。缺点是将应用程序打包成.egg文件可能会很麻烦。
除了.eggs之外,您还应该提供另一种安装方式。有些人不喜欢使用鸡蛋,因为他们不喜欢软件程序安装任何软件的想法。这些通常倾向于是系统管理员类型。
不管你做什么,不停止分发您的应用程序,也作为一个压缩包,因为这是与包sysetem操作系统的最简单的装袋的格式。
对于简单的Python程序,你可能并不需要使用鸡蛋。分发原始的.py文件应该足够了;这就像分发GNU/Linux的源文件一样。您还可以使用各种操作系统“打包器”(如py2exe或py2app)为不同的操作系统创建.exe,.dmg或其他文件。
更复杂的程序,例如由于需要各种模块和依赖关系,Django几乎需要鸡蛋。本身
一个鸡蛋不超过一个适当的源代码版本更好。好的部分是依赖处理。像debian或者rpm包一样,你可以说你依赖于其他的蛋,它们会自动安装(通过pypi.python.org)。
第二评论:鸡蛋格式本身是二进制格式打包。只包含python代码的普通python包最好作为“源代码版本”发布,所以“python setup.py sdist”会导致.tar.gz。上传到pypi时,这些通常也被称为“鸡蛋”。
,你需要二进制鸡蛋:当你捆绑一些C代码扩展。那么你需要几个二进制的鸡蛋(一个32位的unix,一个窗口等)。
但是如果依赖Python包没有将二进制文件上传到PyPi呢? – Mitar 2012-06-15 15:23:30
- 1. c#应用程序作为服务运行有什么优势?
- 2. 使用Python Virtualbox API有什么优势?
- 3. 开发SharePoint组件与独立应用程序有什么优势和缺点?
- 4. 打包python应用程序
- 5. 什么是XSLT的优势和应用程序?
- 6. reftype {}有什么优势?
- 7. 将Sinatra/Rack应用程序制作成单个本地可执行文件有什么优势?
- 8. 使用Java小程序有什么优势?
- 9. 使用Java将内部类设为静态有什么优势?
- 10. 如何将python程序转换成.egg文件?
- 11. 为什么我的非python文件没有打包?
- 12. 使用通配符配置文件有什么优势吗?
- 13. 使用bower而不是缩小javascript文件有什么优势?
- 14. 为什么IL代码打包到C#应用程序中的exe文件中?
- 15. 使用NSOutputstream有什么优势?
- 16. Hudson vs使用shellcript有什么优势?
- 17. 使用Redux比React有什么优势?
- 18. 使用HttpApplication比HttpApplication有什么优势?
- 19. 使用POCO比DataTables有什么优势?
- 20. 使用SVN比CVS有什么优势?
- 21. 使用BaseAdapter比ArrayAdapter有什么优势?
- 22. 没有从python .egg文件安装软件包数据
- 23. 使用配置文件打包Python应用程序
- 24. 在Apple App Store上验证iOS应用程序收据与在应用程序中有什么安全优势?
- 25. 将纬度/经度存储为整数有什么优势?
- 26. 将字符串拆分为initiliase javascript数组有什么优势?
- 27. SVN和Apache - 有没有什么优势?
- 28. 使用Python应用程序打包OpenCV
- 29. 为什么TeamCity将“csproj.teamcity.patch”添加到Web应用程序包文件中?
- 30. Rails应用程序连接与优势数据库
但是如果依赖Python包没有将二进制文件上传到PyPi呢? – Mitar 2012-06-15 15:24:04