2008-09-06 180 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

相關問題