我见过太多人在终端里敲下 pip install,久镜然后盯着那个蜗牛般的久镜进度条发呆。那种等待,久镜像极了十年前用拨号上网下载一张图片的久镜煎熬。时间一分钟一分钟过去,久镜几十兆的久镜包还在那里转圈,你甚至能听见风扇在哀嚎。久镜
问题的久镜根源很简单——默认的 PyPI 源在境外。每次安装,久镜你的久镜请求都要跨越半个地球,穿过海底光缆,久镜经过无数个路由节点,久镜最后才能到达那个位于美国或者欧洲的久镜服务器。这种物理距离带来的久镜延迟,不是久镜靠带宽能解决的。
解决办法也简单:换源。但很多人换了源之后,下次安装又变慢了。为什么?因为 pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple 这种写法只对当次命令生效,下次你还是得手动加上那个长长的参数。烦不烦?烦。
真正的解法是永久配置。在 Linux 或 macOS 上,执行:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 这条命令会在你的用户目录下创建一个 ~/.pip/pip.conf 文件(Windows 上是 %APPDATA%\pip\pip.ini),写下那行配置。从此以后,你每次敲 pip install,它都会自动走清华的镜像,不需要再手动指定。
如果你用的是老版本 pip,可能不支持 config 子命令。那就手动创建文件。在 Linux 下,打开终端,输入:
mkdir -p ~/.pip cat >> ~/.pip/pip.conf << EOF [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple EOF Windows 用户在资源管理器里输入 %APPDATA%,进入目录后新建 pip 文件夹,在里面创建 pip.ini 文件,写入同样的内容。注意 Windows 下文件名是 pip.ini,不是 pip.conf。
选清华源还是阿里源?我个人偏爱清华,因为它的同步频率高,而且 CDN 节点多。但如果你在杭州或者深圳,阿里云可能更快。试试就知道,反正改配置只需要几秒钟。还有个冷门的——豆瓣源,稳定性也不错,只是更新偶尔慢半拍。
换源之后,体验是质的飞跃。原来装一个 Django 要等两分钟,现在十秒内完成。那种感觉,就像把自行车换成了电动车,虽然还是两个轮子,但加速感完全不同。有一次我在咖啡馆帮朋友配环境,他看我敲完配置命令后 pip install 飞速跑完,眼睛都直了,问我是不是用了什么黑科技。
其实哪有什么黑科技,就是绕开了那条拥堵的跨洋线路。镜像服务器把 PyPI 的内容复制到了国内,你访问的是家门口的仓库,当然快。这跟你在国内看 Netflix 卡顿、看 B 站流畅是同一个道理——服务器离你近,一切都会好起来。
最后提醒一句:如果你在公司内网,可能已经有自己的 PyPI 镜像了。那就把 index-url 指向内网地址,别用公网镜像,否则可能被防火墙拦下来。判断方法很简单——先 ping 一下内网那个域名,能通就说明是内网镜像。
配置完,跑一条 pip install requests 试试。看到那个进度条飞速前进的时候,你会觉得,这半辈子等 pip 下载浪费的时间,终于可以补回来了。