在Python環(huán)境中已經(jīng)有很多成熟的包,可以通過安裝這些包來擴展我們的程序。 例如,很多時候Python開發(fā)人員都會去PyPI網(wǎng)站去查找自己想要使用的包,然后進行安裝。PyPI ( Python Package Index)是獲得第三方 Python 軟件包以補充標準庫的一個站點。 在安裝Python包的過程中,經(jīng)常涉及到distutils、setuptools、distribute、setup.py、easy_install、easy_install和pip等等。 突然對Python的包管理凌亂了,這些工具關系是什么,應該怎么去選擇使用? 下面就簡單介紹下Python包管理相關的一些內(nèi)容。 本文福利:私信回復【基礎】可獲取Python基礎視頻教程一套 Python包管理工具這么多的Python包管理工具,剛開始接觸Python時會有點不知如何選擇。其實,當查過Python的官方文檔之后,慢慢就理清了這些工具之間的關系了,也就沒有這么混亂了。 下面就分別對Python中的包管理工具進行簡單的介紹。 distutilsdistutils 是 python 標準庫的一部分,這個庫的目的是為開發(fā)者提供一種方便的打包方式, 同時為使用者提供方便的安裝方式。 我們經(jīng)常使用的setup.py就是基于distutils實現(xiàn)的,然后通過setup.py就可以進行打包或者安裝了。 看一個簡單的例子,找一個目錄創(chuàng)建三個文件foo.py、bar.py和setup.py,其中setup.py的內(nèi)容如下: 然后,在該目錄中運行 python setup.py sdist ,會得到以下輸出,同時生成了一個"fooBar-1.0.zip"包。 使用者就可以解壓縮這個包然后執(zhí)行 python setup.py install進行安裝,然后就可以使用foo、bar這兩個模塊了: 關于更過如何編寫setup.py的內(nèi)容,請自行參閱Python官方文檔中的setupscript部分。 setuptools 和 distributesetuptools 是對 distutils 的增強,尤其是引入了包依賴管理。我們可以通過ez_setup.py來安裝setuptools。 至于distribute,它是setuptools的一個分支版本。分支的原因是有一部分開發(fā)者認為 setuptools 開發(fā)太慢。但現(xiàn)在,distribute 又合并回了 setuptools 中,所以可以認為它們是同一個東西。 前面看到setup.py可以創(chuàng)建一個壓縮包,而setuptools使用了一種新的文件格式(.egg),可以為Python包創(chuàng)建 egg文件。setuptools 可以識別.egg文件,并解析、安裝它 easy_install當安裝好setuptools/distribute之后,我們就可以直接使用easy_install這個工具了:
通過 easy_install --help 命令可以獲取該命令相關的幫助提示: 根據(jù)上面的分析,可以看到setuptools/distribute和easy_install之間的關系:
pippip是目前最流行的Python包管理工具,它被當作easy_install的替代品,但是仍有大量的功能建立在setuptools之上。 easy_install 有很多不足:安裝事務是非原子操作,只支持 svn,沒有提供卸載命令, 安裝一系列包時需要寫腳本。pip 解決了以上問題,已經(jīng)成為新的事實標準。 pip的使用非常簡單,并支持從任意能夠通過 VCS 或瀏覽器訪問到的地址安裝 Python 包:
文章的下面部分就重點介紹一下pip相關的內(nèi)容。 使用pip在大家使用Python中,推薦使用pip進行Python包管理,pip的安裝和使用都比較方便。 pip安裝pip的安裝有兩種常用的方式:
pip常用命令 對于pip,最常用的肯定還是 pip --help ,通過幫助文檔,就可以大概知道如何使用命令和參數(shù)。 pip常用命令集合: |
|