对于 Python 开发者而言,pip
是不可或缺的包管理工具。然而,由于网络环境的限制,直接从官方 PyPI (Python Package Index) 下载包时常会遇到速度缓慢甚至连接失败的问题。幸运的是,国内众多高校和云服务商提供了 PyPI 镜像服务,通过配置这些镜像源,可以显著提升包下载和安装效率,优化开发体验。
Python 的官方包仓库 PyPI (pypi.org
) 服务器位于国外。当我们在国内使用 pip
安装包时,网络请求需要跨越漫长的物理距离和复杂的国际网络链路,这往往导致:
使用国内镜像源,相当于将包仓库“搬”到了国内服务器上,从而大大缩短了网络路径,实现高速、稳定的下载。
根据 菜鸟教程的说明,默认情况下 pip 使用的是国外镜像,在下载的时候速度非常慢,推荐使用国内镜像源以提升效率。
以下是一些国内常用且较为稳定的 Pip 镜像源。选择时可以考虑就近性、更新频率以及个人网络环境。所有这些源都推荐使用 https
链接,且末尾通常带有 /simple/
。
https://pypi.tuna.tsinghua.edu.cn/simple/
https://mirrors.aliyun.com/pypi/simple/
https://pypi.mirrors.ustc.edu.cn/simple/
http://pypi.douban.com/simple/
(注意是 http
)http
,使用时可能需要添加 --trusted-host pypi.douban.com
参数,或在配置文件中指定。/simple/
地址,用户可查阅其官方镜像站获取最新信息。配置镜像源主要有两种方式:临时使用和永久配置。永久配置更为推荐,一劳永逸。
在配置镜像源之前,建议先将 Pip 升级到最新版本,以获得更好的兼容性和功能支持。许多镜像站的帮助文档(如清华大学镜像站)也建议如此操作。
python -m pip install --upgrade pip
如果您当前 Pip 下载速度极慢,可以使用国内镜像临时升级 Pip:
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
-i
参数)如果您只是偶尔需要使用国内镜像,可以在执行 pip install
命令时,通过 -i
(或 --index-url
) 参数临时指定镜像源地址。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
# 例如安装 numpy:
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
如果使用的是 HTTP 源 (如豆瓣),可能还需要添加 --trusted-host
参数:
pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com package_name
永久配置意味着将选定的镜像源设为默认,后续使用 pip
命令时无需再手动指定。这可以通过修改 Pip 的配置文件或使用 pip config
命令实现。
pip config
命令 (推荐,更便捷)这是最推荐的永久配置方式,简单直接,Pip 会自动处理配置文件的创建和修改。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果需要为 HTTP 源添加信任主机:
pip config set global.index-url http://pypi.douban.com/simple
pip config set global.trusted-host pypi.douban.com
您可以随时通过 pip config list
查看当前配置,或 pip config unset global.index-url
来取消配置。
Pip 的配置文件位置因操作系统而异:
~/.config/pip/pip.conf
(推荐)~/.pip/pip.conf
%APPDATA%\pip\pip.ini
(通常是 C:\Users\你的用户名\AppData\Roaming\pip\pip.ini
)如果文件或目录不存在,请手动创建它们。
在配置文件中写入以下内容 (以清华源为例):
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
; 如果使用的是 http 源,例如豆瓣,则需要添加 trusted-host
; [global]
; index-url = http://pypi.douban.com/simple
; [install] ; 或者直接在 global 下
; trusted-host = pypi.douban.com
注意: [global]
下的配置对所有 pip 命令生效。[install]
下的 trusted-host
也是一种常见的写法。
根据 阿里云开发者社区的指引 和 菜鸟教程,配置文件路径和内容格式基本一致。
Pip 支持配置一个主镜像源 (index-url
) 和多个备用镜像源 (extra-index-url
)。当主源不可用或找不到包时,Pip 会尝试从备用源下载。这对于提高下载成功率非常有帮助。
编辑 Pip 配置文件 (如 ~/.config/pip/pip.conf
或 %APPDATA%\pip\pip.ini
):
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple ; 主源
extra-index-url =
https://mirrors.aliyun.com/pypi/simple/ ; 备用源1
https://pypi.mirrors.ustc.edu.cn/simple/ ; 备用源2
http://pypi.douban.com/simple/ ; 备用源3 (http)
[install]
trusted-host =
pypi.tuna.tsinghua.edu.cn ; 主源的 host (如果是 https,技术上非必需,但加上无妨)
mirrors.aliyun.com ; 备用源1的 host
pypi.mirrors.ustc.edu.cn ; 备用源2的 host
pypi.douban.com ; 备用源3的 host (http 源必须添加)
清华大学开源镜像站的帮助文档中提供了类似的配置多个镜像源的示例。注意 extra-index-url
后可以跟多个URL,以空格或换行分隔。trusted-host
下的多个主机名也类似。
除了标准的 Pip,一些现代的 Python 包管理工具或构建工具也支持配置镜像源。
uv
uv
是一个新兴的、速度极快的 Python 包解析器和安装器。它可以通过配置文件设置镜像源。 根据清华大学镜像站和中科大镜像站的指引,可以在 ~/.config/uv/uv.toml
(Linux/macOS) 或 /etc/uv/uv.toml
(系统级) 文件中配置:
# ~/.config/uv/uv.toml
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
Poetry: 全局配置 Poetry 的镜像源相对复杂。通常建议在项目级别的 pyproject.toml
文件中为特定源指定URL,或者通过修改 Poetry 的配置来实现。具体方法请参考 Poetry官方文档 或镜像站的指导 (如清华镜像站关于Poetry的说明)。
PDM: PDM 提供了更便捷的方式来配置镜像源。可以在 pyproject.toml
中定义源,或者使用 PDM 的命令进行全局配置。详情请查阅 PDM官方文档。
虽然列举了多个镜像源,但如何选择呢?可以考虑以下几点:
一个来自 知乎专栏的建议提到,镜像源的完全度和速度可能因地域和时间而异,建议根据自己的实际情况选择。
https
协议的镜像源地址,以保证数据传输的安全性。清华大学镜像站明确指出 pip 要求使用 https。/simple/
后缀: 几乎所有的 Pip 镜像源地址都以 /simple/
结尾,配置时务必确保此后缀存在。trusted-host
: 如果你选择的镜像源是 http
而非 https
(如豆瓣源),Pip 可能会发出警告或拒绝连接。此时,需要在配置文件或命令行中将该镜像源的主机名添加到 trusted-host
列表中。pip config list
命令检查配置是否生效,或者尝试安装一个小包测试下载速度。配置 Pip 国内镜像源是 Python 开发环境搭建中的一个简单但非常有效的优化步骤。通过选择合适的镜像源并正确配置,你可以告别漫长的等待,享受流畅的包安装体验,从而将更多精力投入到编码和创新中。希望本指南能帮助你顺利完成配置,提升开发效率!
参考资料与主要来源包括但不限于:
本文信息可能随时间推移发生变化,建议查阅各镜像源官方文档获取最新信息。