从国内的 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/复制代码

顺便提一下,使用镜像源须要注意一个问题:包的版本可能不会及时更新,遇到这种状况能够经过临时换回官方源解决。


这是一个古老的话题了,网上有大量的文章。写这篇文章主要是想总结一下几种经常使用工具的设置方法,顺便介绍给初学者。

相关文章
相关标签/搜索