pip 包管理工具

一、常用命令

pip 是首選的Python包管理工具,主要用于安裝 PyPI 上托管的軟件包(第三方庫、應用、框架等),用于替代老版的 easy_install 工具。在Python3的開發中應該盡量使用pip,不要繼續使用 easy_install。
從 Python 3.4 開始,Python默認內置了pip (import pip)。,但是你可以執行下面的命令升級pip:

$ pip install -U pip


1、使用 install 命令安裝包:

1.1 安裝PyPI包

$ pip install SomePackage            # 安裝最新版本
$ pip install SomePackage==1.0.4     # 安裝指定版本
$ pip install 'SomePackage>=1.0.4'     # 指定安裝的最小版本
clipboard.png


使用 requirement.txt 需求文件

可以將要安裝的數據包也就是將 install 命令后面的參數都寫入 requirement.txt 文件中,使用 -r 選項一次性全部安裝。requirements.txt 文件的每一行都要表明安裝的內容,而且盡量不要依賴文件中指定包的前后安裝順序。

$ pip install -r requirements.txt
clipboard.png

可以將 pip freeze 列出的包寫入到 requirement.txt 文件中,以便在其他系統中安裝。

$ pip freeze > requirements.txt
$ pip install -r requirements.txt


1.2 安裝 wheel 包

wheel本質上是一個 zip 包格式,用于 python 模塊的安裝,它的出現是為了替代 老版本的Eggs。pip也可以直接安裝wheel包。如果發布模塊,推薦使用 wheel 格式。

$ pip install SomePackage-1.0-py2.py3-none-any.whl
clipboard.png


1.3 安裝本地包

$ pip install -e .                     # 項目在當前目錄
$ pip install -e path/to/project       # 指定項目的目錄路徑


1.4 從服務器托管的包中安裝

$ pip install -e git+https://git.repo/some_pkg.git#egg=SomePackage      # 從git安裝
$ pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomePackage  # 從svn安裝
$ pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomePackage  # 從一個分支安裝
$ pip install -e "git+https://git.repo/some_repo.git#egg=subdir&subdirectory=subdir_path"  # install a python package from a repo subdirectory


從其他的索引中(除了PyPI)安裝:

$ pip install --index-url http://my.package.repo/simple/ SomePackage


在安裝期間搜索其他的索引(除了PyPI):

$ pip install --extra-index-url http://my.package.repo/simple SomePackage


1.5 升級軟件包

pip在升級軟件包之前會自動卸載舊的軟件包

$ pip install -U|--upgrade SomePackage
clipboard.png


2、查看安裝的包

2.1 使用 freeze 格式化輸出安裝的包:

$ pip freeze 
clipboard.png


2.2 使用 list 命令查看安裝的第三方包

$ pip list [--fromat (legacy|columns)]
clipboard.png
clipboard.png
clipboard.png


查看哪些軟件需要更新(列出過時的包):

$ pip list -o|--outdated
clipboard.png


2.3 使用 show 命令查看安裝的包的詳細信息:

$ pip show SomePackage
clipboard.png


查看安裝包的具體安裝文件

$ pip show -f|--files SomePackage
clipboard.png


3、使用 uninstall 命令卸載軟件包

$ pip uninstall Django
clipboard.png

也可以像安裝包一樣,將要卸載的包寫入到 uninstall.txt 文件中,然后使用 -r 參數,一次性卸載。


4、使用 download 命令下載軟件包

$ pip download Django
clipboard.png


5、使用 search 命令在PyPI倉庫中搜索軟件包

$ pip search Django
clipboard.png


6、使用 help 命令查看pip的幫助手冊

$ pip help

也可以訪問官方的站點:

https://pip.pypa.io/en/stable/reference/

clipboard.png


二、 配置文件

pip允許你在標準的ini配置文件中設置所有命令選項的默認,配置文件的名稱和路徑,在不同的平臺并不相同,你可能有針對系統的、用戶的以及虛擬環境的配置。

針對系統的配置文件:

在Unix平臺,配置文件的位置可能是 /etc/pip.conf,或者它可能是環境變量 XDG_CONFIG_DIRS 中設置的路徑 pip 路徑的子目錄 。

針對用戶的配置文件:

在Unix平臺,默認的配置文件是 $HOME/.config/pip/pip.conf ,這個路徑取決于
XDG_CONFIG_HOME 環境變量的值。有一個早些版本使用的位置:$HOME/.pip/pip.conf,也是可以使用的。

你也可以在環境變量 PIP_CONFIG_FILE 中自定義一個路徑。

針對虛擬環境:

在Unix平臺,默認的配置文件是 $VIRTUAL_ENV/pip.conf

如果由pip找到多個配置文件,那么它們將按以下順序組合:

  1. 首先,站點范圍的文件被讀取

  2. 然后,讀取每個用戶的文件

  3. 最后,特定于virtualenv的文件被讀取

后面配置文件的讀取覆蓋會覆蓋前面的文件讀取的值,所以如果在系統的配置文件和用戶的配置文件中的超時時間參數都設定了,那么使用用戶配置文件中的值。

設置參數的名字來自于命令行的選項,例如:你想要使用不同的包的索引 (--index-url) 并設置http的超時時間 (--default-timeout)為60s:

[global] 
timeout = 60 
index-url = http://download.zope.org/ppix

任何子命令都可以在它自己的部分被設置,這個時候同名的全局的設置會被覆蓋。例如:減少freeze命令的超時時間到10s,其他的命令的超時時間為60s。

[global] 
timeout = 60 

[freeze] 
timeout = 10


命令行自動補全

在bash、zsh和fish中,pip支持命令行補全。

bash:

$pip completion --bash >> ~/.profile

同樣的,你也可以在shell中直接使用eval函數和completion命令:

$ eval "`pip completion --bash`"

更多的配置參數可以參考官方文檔:
https://pip.pypa.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容