在國內(nèi)倒戏,用 pip 安裝 python 依賴包的時候,總是會遇到 Timeout 或者下載太慢的問題恐似。
這是因為 pip 源在國外杜跷,那么解決方法就是把 pip 源改成國內(nèi)的,就可以實現(xiàn) pip install 加速蹂喻。
1. 國內(nèi)有哪些 pip 源葱椭?
國內(nèi)有幾個名氣比較大的源:
- 清華大學(xué) https://pypi.tuna.tsinghua.edu.cn/simple/
- 豆瓣 http://pypi.douban.com/simple/
- 阿里云 http://mirrors.aliyun.com/pypi/simple/
- 中國科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/
- 中國科學(xué)技術(shù)大學(xué) http://pypi.mirrors.ustc.edu.cn/simple/
個人這幾年使用下來,偏向于使用清華的源口四,比較穩(wěn)定孵运。
2. 怎么加速?
答案前面已經(jīng)說了蔓彩,就是修改 pip 源治笨,主要有兩種方式:
- 每次安裝的時候驳概,手動指定國內(nèi)的 pip 源。
- 修改本地的 pip 配置文件旷赖,默認(rèn)為國內(nèi)的 pip 源顺又。
2.1 手動指定 pip 源
這里舉了個例子:從清華的 pip 源下載 pandas 包。
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
- 好處:不必修改本地的 pip 配置文件等孵。
- 壞處:每次都要在 pip install 后面添加老長一些代碼稚照。
有些公司內(nèi)部是會維護(hù)自己的 pip 源的,上面放了一些內(nèi)部專用的依賴包俯萌,而員工電腦本地的 pip 配置文件一般已經(jīng)指向公司內(nèi)部 pip 源果录。
有時候出于穩(wěn)定性和速度的考慮,可能還是會用到這種安裝方式咐熙。
但絕大多數(shù)時候弱恒,還是建議修改本地的 pip 配置文件。
2.2 修改本地的 pip 配置文件
2.2.1 pip 配置文件在哪里棋恼?
對于不同操作系統(tǒng)返弹,pip 配置文件的路徑和名稱不太相同,甚至同一類操作系統(tǒng)爪飘,有可能因為版本不一樣(如 win7 和 win XP)也會導(dǎo)致路徑不一樣义起,所以要根據(jù)自身情況尋找 pip 配置文件的有效路徑。
這里列了一些配置文件的路徑悦施,如果路徑不存在并扇,則需要自己先新建,然后再添加配置文件抡诞。
Linux/Unix
- /etc/pip.conf
- ~/.config/pip/pip.conf
- ~/.pip/pip.conf
Mac
- ~/.pip/pip.conf
- ~/Library/Application Support/pip/pip.conf
Windows
- %USERPROFILE%\pip\pip.ini
- %APPDATA%\pip\pip.ini
- %HOME%\pip\pip.ini
虛擬環(huán)境
- 在Unix和macOS上穷蛹,文件為:$VIRTUAL_ENV/pip.conf
- 在Windows上,文件為: %VIRTUAL_ENV%\pip.ini
2.2.2 pip 配置文件的優(yōu)先級
如果 pip 配置文件有很多個昼汗,則按照如下順序讀取配置:
- 讀取站點范圍(site-wide)的配置肴熏,這里指全局配置。
- 讀取每個用戶目錄的配置顷窒。
- 讀取特定于虛擬環(huán)境的配置蛙吏。
也就是說,如果這些位置都有配置文件鞋吉,則后面讀取的值會覆蓋前面讀取的值鸦做。
2.2.3 pip 配置文件的內(nèi)容?
下面是我自己的配置谓着。
[global]
timeout = 120
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
[search]
index = https://pypi.tuna.tsinghua.edu.cn/simple
簡單解釋一下里面的參數(shù):
- timeout:超時時間為120秒泼诱,避免因為短暫的阻塞而導(dǎo)致下載失敗,這個值設(shè)得太長也沒意義赊锚,還不如盡早重試或換一個源治筒。
- index-url:清華源屉栓,pip install 時下載的地方。
- trusted-host:添加清華源為可信主機耸袜,要不然可能報錯友多。
一般來說這樣的配置文件就足夠用了,如果想知道更多配置詳情堤框,可以參考官方教程:https://pip.pypa.io/en/stable/user_guide/