從國內的 PyPI 鏡像(源)安裝 Python 包

不管是使用 pip,仍是 Pipenv、Poetry 等工具,安裝 Python 包的時候會默認從官方的 PyPI 源下載文件,速度比較慢。國內的一些公司和機構提供了 PyPI 鏡像源(mirror source),你能夠設置讓這些工具從國內的鏡像源安裝 Python 包,以便提升下載速度。python

官方 PyPI 源的 URL 爲 https://pypi.org/simple (舊的 URL 爲 https://pypi.python.org/simple ),下面咱們將以豆瓣提供的鏡像源爲例(URL 爲 https://pypi.doubanio.com/simple/),介紹不一樣工具更改 PyPI 鏡像源的方法:flask

pip

臨時設置能夠經過 -i 選項:ide

$ pip install -i https://pypi.doubanio.com/simple/ flask複製代碼

全局設置有不一樣的層級和文件位置,以用戶全局(per-user)爲例,在 Linux & macOS 中,配置須要寫到 ~/.pip/pip.conf 文件中;Windows 中,配置文件位置爲 %HOMEPATH%\pip\pip.ini,%HOMEPATH% 即你的用戶文件夾,通常爲「\Users\<你的用戶名>」,具體值可使用 echo %HOMEPATH% 命令查看。工具

一般你須要手動建立對應的目錄和文件,而後寫入下面的內容:測試

[global]
index-url = https://pypi.doubanio.com/simple
[install]
trusted-host = pypi.doubanio.com複製代碼

附註:按照 pip 文檔,上面的配置文件位置是舊(legacy)的配置方式,可是由於比較方便設置,這裏沿用了。新的建議是 Linux & macOS 放到 $HOME/.config/pip/pip.conf,Windows 則放到 %APPDATA%\pip\pip.ini。具體能夠訪問 pip 文檔配置部分查看。ui

Pipenv

相似 pip 的 -i (--index-url)選項,你可使用 --pypi-mirror 臨時設置鏡像源地址:阿里雲

$ pipenv install --pypi-mirror https://pypi.doubanio.com/simple flask複製代碼

若是想對項目全局(per-project)設置,能夠修改 Pipfile 中 [[source]] 小節:url

[[source]]

url = "https://pypi.doubanio.com/simple"
verify_ssl = true
name = "douban"複製代碼

另一種方式是使用環境變量 PIPENV_PYPI_MIRROR 設置(Windows 系統使用 set 命令):spa

$ export PIPENV_PYPI_MIRROR=https://pypi.doubanio.com/simple複製代碼

你能夠經過把這個環境變量的設置語句寫入到終端的配置文件裏實現「永久」設置,Linux & macOS 可參考這裏,Windows 可參考這裏unix

Poetry / Flit

由於 Poetry,Flit 這些工具遵循 PEP 518 建立了一個 pyproject.toml 文件來替代 setup.py、Pipfile 等配置文件,因此咱們能夠在這個文件裏更改 PyPI 源。

使用 Poetry 時,在 pyproject.toml 末尾添加下面的內容來設置自定義鏡像源:

[[tool.poetry.source]]
name = "douban"
url = "https://pypi.doubanio.com/simple/"複製代碼

目前暫時沒有其餘方式,將來或許會爲 poetry add 命令添加一個相關的設置選項。

一樣的,Flit 大概要添加下面這些內容(未測試):

[[tool.flit.source]]
name = "douban"
url = "https://pypi.doubanio.com/simple/"複製代碼

經常使用的國內 PyPI 鏡像列表

豆瓣 https://pypi.doubanio.com/simple/
網易 https://mirrors.163.com/pypi/simple/
阿里雲 https://mirrors.aliyun.com/pypi/simple/
清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/複製代碼

順便提一下,使用鏡像源須要注意一個問題:包的版本可能不會及時更新,遇到這種狀況能夠經過臨時換回官方源解決。


這是一個古老的話題了,網上有大量的文章。寫這篇文章主要是想總結一下幾種經常使用工具的設置方法,順便介紹給初學者。

相關文章
相關標籤/搜索