歡迎光臨
每天分享高質量文章

Python之包管理工具快速入門

在Python環境中已經有很多成熟的包,可以透過安裝這些包來擴充套件我們的程式。

例如,很多時候Python開發人員都會去PyPI網站去查詢自己想要使用的包,然後進行安裝。PyPI ( Python Package Index)是獲得第三方 Python 軟體包以補充標準庫的一個站點。

在安裝Python包的過程中,經常涉及到distutils、setuptools、distribute、setup.py、easy_install、easy_install和pip等等。

突然對Python的包管理凌亂了,這些工具關係是什麼,應該怎麼去選擇使用?

下麵就簡單介紹下Python包管理相關的一些內容。


Python包管理工具

這麼多的Python包管理工具,剛開始接觸Python時會有點不知如何選擇。其實,當查過Python的官方檔案之後,慢慢就理清了這些工具之間的關係了,也就沒有這麼混亂了。

下麵就分別對Python中的包管理工具進行簡單的介紹。


distutils

distutils 是 python 標準庫的一部分,這個庫的目的是為開發者提供一種方便的打包方式, 同時為使用者提供方便的安裝方式。

我們經常使用的setup.py就是基於distutils實現的,然後透過setup.py就可以進行打包或者安裝了。

看一個簡單的例子,找一個目錄建立三個檔案foo.py、bar.py和setup.py,其中setup.py的內容如下:

from distutils.core import setup
setup(
    name='fooBar',
    version='1.0',
    author='Will',
    author_email='wilber@sh.com',
    url='http://www.cnblogs.com/wilber2013/',
    py_modules=['foo', 'bar'],
)

然後,在該目錄中執行 python setup.py sdist ,會得到以下輸出,同時生成了一個”fooBar-1.0.zip”包。

使用者就可以解壓縮這個包然後執行 python setup.py install進行安裝,然後就可以使用foo、bar這兩個模組了:

關於更過如何編寫setup.py的內容,請自行參閱Python官方檔案中的setupscript部分。


setuptools 和 distribute

setuptools 是對 distutils 的增強,尤其是引入了包依賴管理。我們可以透過ez_setup.py來安裝setuptools。

至於distribute,它是setuptools的一個分支版本。分支的原因是有一部分開發者認為 setuptools 開發太慢。但現在,distribute 又合併回了 setuptools 中,所以可以認為它們是同一個東西。

前面看到setup.py可以建立一個壓縮包,而setuptools使用了一種新的檔案格式(.egg),可以為Python包建立 egg檔案。setuptools 可以識別.egg檔案,並解析、安裝它


easy_install

當安裝好setuptools/distribute之後,我們就可以直接使用easy_install這個工具了:

1.從PyPI上安裝一個包:當使用 easy_install package 命令後,easy_install 可以自動從 PyPI 上下載相關的包,並完成安裝,升級

2.下載一個包安裝:透過 easy_install package.tgz 命令可以安裝一個已經下載的包

3.安裝egg檔案:透過 easy_install package.egg 可以安裝一個egg格式的檔案

透過 easy_install –help 命令可以獲取該命令相關的幫助提示:

根據上面的分析,可以看到setuptools/distribute和easy_install之間的關係:

*setuptools/distribute 都擴充套件了 distutils,提供了更多的功能

*easy_install是基於setuptools/distribute的一個工具,方便了包的安裝和省級

pip

pip是目前最流行的Python包管理工具,它被當作easy_install的替代品,但是仍有大量的功能建立在setuptools之上。

easy_install 有很多不足:安裝事務是非原子操作,只支援 svn,沒有提供解除安裝命令, 安裝一系列包時需要寫指令碼。pip 解決了以上問題,已經成為新的事實標準。

pip的使用非常簡單,並支援從任意能夠透過 VCS 或瀏覽器訪問到的地址安裝 Python 包:

*安裝:  pip install SomePackage 

*解除安裝:  pip uninstall SomePackage 

文章的下麵部分就重點介紹一下pip相關的內容。

使用pip

在大家使用Python中,推薦使用pip進行Python包管理,pip的安裝和使用都比較方便。

pip安裝

pip的安裝有兩種常用的方式:

1.下載get-pip.py檔案,然後執行 python get-pip.py 進行安裝(如果沒有安裝setuptools,那麼get-pip.py會幫忙安裝)

2.現在pip原始碼包,然後透過setup.py進行安裝

pip常用命令

對於pip,最常用的肯定還是 pip –help ,透過說明檔案,就可以大概知道如何使用命令和引數。

pip常用命令集合:

使用

命令

從PyPI安裝軟體包

pip install SomePackage

解除安裝軟體包

pip uninstall SomePackage

檢視以安裝軟體包

pip list

檢視可升級軟體包

pip list –outdated

升級軟體包

pip install –upgrade SomePackage

檢視軟體包安裝了哪些檔案及路徑等資訊

pip show –files SomePackage

安裝軟體包的指定版本號

pip install SomePackage

# latest version

 

pip install SomePackage==1.0.4

# specific version

 

pip install ‘SomePackage>=1.0.4’

# minimum version

根據依賴檔案安裝軟體包

pip freeze > requirements.txt

# 使用pip匯出依賴檔案串列

 

pip install -r requirements.txt

# 根據依賴檔案串列,自動安裝對應的軟體包

總結

本文介紹了Python的各個包管理工具之間的關係,相信透過這篇文章的介紹,就不會再對distutils、setuptools、distribute、setup.py、easy_install、easy_install和pip等等名詞感覺混亂了。

大致瞭解這些Python包管理工具後,大家應該也清楚了怎麼選擇和使用。

本文沒有涉及如何製作併發布一個Python包,感興趣的同學可以去Python官網上查查。

作者:包子

原文連結:https://www.cnblogs.com/liangqihui/p/6895108.html

《Linux雲端計算及運維架構師高薪實戰班》2018年09月17日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

    – END –


    更多Linux好文請點選【閱讀原文】

    ↓↓↓

    贊(0)

    分享創造快樂