Python包管理工具之間的關係

來源:互聯網
上載者:User

標籤:

轉自http://www.nowamagic.net/academy/part/13/302/

當前的包管理工具鏈是 easy_install/pip + distribute/setuptools + distutils, 顯得較為混亂。

而將來的工具鏈組合非常簡單:pip + distutils2。

1. distutils : Python 內建的基本安裝工具,適用於非常簡單的應用情境,使用:

  • 為項目建立 setup.py 指令碼。
  • 執行 setup.py install 可進行安裝。

2. setuptools : 針對 distutils 做了大量擴充, 尤其是加入了包依賴機制. 在部分 Python 子社區已然是事實上的標準。

3. distribute : 由於 setuptools 開發進度緩慢,不支援 Python 3,代碼混亂,一幫程式員另起爐灶,重構代碼,增加功能,希望能夠取代 setuptools 並被接納為官方標準庫,他們非常努力,在很短的時間便讓社區接受了 distribute。

4. easy_install : setuptools 和 distribute 內建的安裝指令碼,也就是一旦 setuptools 或 distribute 安裝完畢,easy_install 也便可用。最大的特點是自動尋找 Python 官方維護的包源 PyPI,安裝第三方 Python 包非常方便。使用:

  • setuptools / distribute 都只是擴充了 distutils。
  • easy_install [PACKAGE_NAME] 自動從 PyPI 尋找/下載/安裝指定的包。

5. pip : pip 的目標非常明確 – 取代 easy_install. easy_install 有很多不足:安裝事務是非原子操作,只支援 svn,沒有提供卸載命令, 安裝一系列包時需要寫指令碼。pip 解決了以上問題,已儼然成為新的事實標準,virtualenv 與它已經成為一對好搭檔。使用:

  • 安裝: pip install [PACKAGE_NAME]
  • 卸載: pip uninstall [PACKAGE_NAME]
  • 支援從任意能夠通過 VCS 或瀏覽器訪問到的地址安裝 Python 包

6. distutils2 : setuptools 和 distribute 的誕生是因為 distutils 的不濟,進而導致目前分化的狀況。而 Guido 並未接納 distribute 為官方標準,並說明了原因。開發人員在失落之餘明確了新的方向和任務 – distutils2,它將成為 Python 3.3 的標準庫 packaging,並在其它版本中以 distutils2 的身份出現。換句話說,它和 pip 將聯手結束目前混亂的狀況。(但是就我搜尋瞭解的情況,這個計劃已經擱置了。)

7. zc.buildout : 這是一個臃腫的安裝、部署系統,在 Zope 社區運用教廣,功能強大/繁複但使用情境有限,除非確有需要,不值得投入太多的精力去研究,pip + virtualenv + fabric 的工具鏈組合更為簡單、靈活。

Python包管理工具之間的關係

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.