關於加速 pip 安裝的兩點妙招。

  • 2019 年 11 月 7 日
  • 筆記

本文字數:1817 字 閱讀本文大概需要:5 分鐘

寫在之前

眾所周知,pip 是一個用來安裝和管理 Python 包的工具,隨着大家使用 Python 的時間越來越長,就會發現一個問題,那就是用 pip 安裝包的時候有時候會很慢,甚至直接就是不可用。因為關注我公眾號的讀者們很大一部分是初學者,所以我在後台也經常會碰到有人問這種問題,這個在大佬們眼中不是問題的問題在很多小白看來無疑是個不知道如何去解決的問題,索性我就專門寫這麼一篇文章,來統一說一下這個問題。

其實這個是因為 pypi.python.org 不太穩定造成的,畢竟是外網的東西。pypi.python.org 是 Python 的官方第三方軟件存儲庫,我們的 pip 其實就是從這個網站上下載我們需要的庫,大佬們將寫好的庫打包上傳到 pypi.python.org 上,我們就使用 pip 進行安裝。

在這可能有人會有問題,那如果大佬們沒有將我需要的那個打包上傳,那咋整?我們「省心省力」的 Python 早就替我們想好了,這個也有一套標準的流程。比如我們嘗試從源碼安裝 **(我在這裡只是單純說一下方法),你可以用如下方式去做:

git clone 源碼的git地址  cd **  python setup.py install

下面再回到正題上來,我就介紹一下我知道的兩個 pip 安裝加速的小妙招。

使用鏡像

其實說到底,我們從 pypi.python.org 上 pip 不穩定的原因還是因為網絡不穩定。那我們換個想法,那是不是從網絡比較穩定的服務器上下載就可以了呢?其實還真是這樣。在國內目前有不少的 pypi 鏡像源,比如阿里源,豆瓣源,清華源等等等等,我之前還發現過我本科母校 SDUT 的源,Orzzzz。這麼多的源,推薦大家使用阿里的或者豆瓣的,畢竟廠子大,穩的很。

如果要使用這種第三方源,很簡單,只需要在安裝的時候,pip 命令的 -i 選項指定一下源即可,比如我想使用豆瓣源安裝 django,可以像下面這樣:

pip install -i https://pypi.douban.com/simple/ django

當然了,這種每次下載都要帶着源,剛開始安裝一個兩個的還好,安裝的多了也太麻煩了,這時候我們可以直接修改 pip 的配置文件,將源寫進配置文件中。linux 系統的文件在 ~/.pip/pip.conf,windows 系統在 %HOMEPATH%pippip.ini。然後在文件中加入並保存如下內容:

[global]  index-url = http://pypi.douban.com/simple  [install]  trusted-host=pypi.douban.com

這樣我們以後在使用 pip 安裝的時候,就會默認調用你所用的鏡像源。

下載到本地

這種方法是比較適合於項目上,比如你克隆一個項目想在本地跑跑,你就得下載項目所需要的包,你總不能運行的時候看到缺了哪個再去下載哪個吧,且不說累死累活的,你也不知道人家用的是哪個版本的包啊,有時候同一個包的不同版本會出現很多玄學問題。

所以有經驗的,一般都會在項目裡帶一個 requirements.txt 文件,用來寫入自己項目所使用的包以及版本(當然 pycharm 會自動識別並且下載這個文件的安裝包)。可以用如下的方法將系統已經安裝的安裝包列表導出到 requirements 文件:

pip freeze > requirements.txt

碰到這種需要安裝很多包或者安裝的包比較大的情況,一般考慮的是將包先下載到本地,然後從本地安裝。ps:如果服務器連接不到外網,也可以用這種方法。具體操作如下分下面兩步:

1.下載到本地

pip install --download='pwd' -r requirements.txt

2. 本地安裝

pip install --no-index -f file://'pwd' -r requirements.txt

使用上述這種方式只需要下載一次,就可以多次安裝,且完全不用擔心網絡的問題。

寫在之後

最近文章更新比較不穩定,主要自己最近一段時間比較忙,好多事情堆在一起,有很多東西要學。還有加上最近體質莫名很弱,上個星期發燒好幾天,這剛好了沒兩天,今天早上起床的時候又成了鼻涕蟲,難受的一批,我都不知道最近去健身房到底去了些什麼鬼。

我一個在北方活了二十多年的,被最近上海隔個一兩天就來一天雨的天氣深深的打敗了,感覺到很大的惡意,大家注意保暖,切記不要浪,等過了這一陣兒爭取穩定輸出,雖然不知道這一陣兒什麼時候過去(逃。