似乎只需在PYTHONPATH中添加一個包路徑,就可以訪問它的所有模塊和功能,類似於安裝一個雞蛋。差異只是雞蛋被拉鍊壓縮?python雞蛋與常規包裝有什麼不同?
回答
是絕對的,但更多的 閱讀本http://www.ibm.com/developerworks/library/l-cppeak3.html轉到節「所有關於雞蛋」 從上述網站複製:
然而,這種在PYTHONPATH的操縱(或腳本中的sys.path的或Python shell會話)有點脆弱。發現蛋可能是最好的一些新的魔法.pth文件中處理。在site-packages /或PYTHONPATH中找到的任何.pth文件都會被解析,以便執行額外的導入操作,其方式與檢查可能包含軟件包的位置中的目錄的方式非常類似。如果您使用setuptools處理包管理,則在安裝,升級或刪除包等時會修改名爲easy-install.pth的文件。但是,無論您喜歡什麼,只要它們具有.pth擴展名即可調用.pth文件)。例如,這裏是我的易install.pth:
清單11. .pth文件雞蛋位置的配置
% cat /sw/lib/python2.4/site-packages/easy-install.pth import sys; sys.__plen = len(sys.path) setuptools-0.6b1-py2.4.egg SQLObject-0.7.0-py2.4.egg FormEncode-0.5.1-py2.4.egg Gnosis_Utils-1.2.1-py2.4.egg import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
格式是有點奇特:它幾乎是,但並不完全,一Python腳本。只要說你可以在那裏添加額外的列表蛋;或者更好,easy_install會在你運行時爲你做。您也可以在site-packages /下創建許多其他.pth文件,並且每個文件都可以簡單列出哪些可用的蛋。
Python Eggs是一個包分發系統,它不僅僅是簡單地複製文件和改變$PYTHONPATH
而是a lot more。
編輯:A lot more
含義例如runtime dependency resolution和plugin support。見http://en.wikipedia.org/wiki/EasyInstall。
從鏈接中不清楚「更多」是什麼(它似乎並不像easy_install只需要egg格式)。你能澄清嗎?謝謝:) – mindthief 2010-10-28 11:39:40
@lamirap:不一定。
首先,從磁盤讀取需要一些時間,特別是如果模塊有多個文件。因此,如果我們比較從磁盤讀取多個文件而不解壓並讀取一個文件 - 這個文件較小,但後面跟着一些進一步的解壓縮開銷,後者不一定更慢。
二,理論上使用雞蛋有助於使系統路徑更短,請參閱http://mail.python.org/pipermail/python-dev/2006-April/064544.html。
所以我關於性能的底線是 - 「這取決於」。請參閱:Disadvantage of Python eggs?。
- 1. 什麼是Python雞蛋?
- 2. Python雞蛋文件有什麼意義?
- 3. Python:爲什麼有些軟件包被安裝成雞蛋,有些軟件包被安裝成「蛋文件夾」?
- 4. 爲什麼{{site.eggs.label}}不會爲jekyll集合「雞蛋」返回「雞蛋」?
- 5. 爲什麼我們需要蟒蛇包裝(例如雞蛋)?
- 6. 雞蛋和零件之間的搭配有什麼不同?
- 7. 訪問Python中的雞蛋?
- 8. Python雞蛋的缺點?
- 9. 爲什麼在安裝本地雞蛋庫時pip失敗?
- 10. 是什麼類似python雞蛋的`gem server`(例如``pip server`)
- 11. 包括來自雞蛋的mercurial擴展
- 12. 如何解壓Python的雞蛋?
- 13. Python雞蛋的源代碼在哪裏?
- 14. Apache用戶無法寫入.python雞蛋
- 15. 廢止分支與常規分支有什麼不同?
- 16. PHP,例外與常規類有什麼不同
- 17. Python - pip安裝pyublas:無法構建雞蛋
- 18. Python如何跟蹤安裝了雞蛋的模塊?
- 19. 安裝MySQLdb的(對於Python)作爲非壓縮雞蛋
- 20. 聚合物indexedDB雞內雞蛋
- 21. 雞和雞蛋,JavaScript比。 Html屬性
- 22. 循環依賴,雞和雞蛋
- 23. 如何從distutils源碼包創建Python雞蛋?
- 24. 閉包與回調有什麼不同?
- 25. 雞蛋正則表達式
- 26. 顛覆雞和蛋問題
- 27. 的plist雞/蛋的情況
- 28. Django:雞或蛋問題
- 29. 如何關閉雞蛋?
- 30. site.addsitedir不添加雞蛋到sys.path
這個答案被忽略了,因爲它有點混亂,但是閱讀引用的實際文章是相當有用的,並且回答了我的問題。 – mindthief 2010-10-28 11:37:53
我歡迎我的猜測:) – jknair 2010-10-28 12:07:33
該鏈接現在看起來破碎了。你能更新它嗎? – 2014-03-24 19:37:08