Python的包管理器pip更换软件源的方法详解
pip镜像源
在国内如果不使用VPN是没办法好好使用pip命令安装任何Python包的。所以另一个选择就是使用国内各大厂的开源镜像源。
目前国内靠谱的pip镜像源有:
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 豆瓣:http://pypi.douban.com/simple/
- 阿里:http://mirrors.aliyun.com/pypi/simple/
在pip命令中使用镜像源很简单,在执行install命令时,使用-i参数加上源地址就可以了,例如:
pipinstalldjango-ihttp://pypi.douban.com/simple/
上面的命令就会使用豆瓣的源来安装django。
如果经常要安装各类程序包,这样使用起来还是有点不方便的。把镜像地址放到pip的全局配置文件中也许是个不错的选择。编辑~/.pip/pip.conf文件(如果不存在可以按路径新建),添加或修改以下配置:
临时使用
pipinstallpythonModuleName-ihttp://pypi.douban.com--trusted-host=pypi.douban.com
在命令行中添加以上参数,可以让pip从制定的镜像源安装软件。
配置
[global] index-url=http://pypi.douban.com/simple/
上面的配置就是把豆瓣的源应用到全局环境。之后使用pip命令就不需要再指定镜像源参数。
在最新的pip版本(>=7)中,使用镜像源时,会提示源地址不受信任或不安全。所以需要在pip的配置文件指定一下镜像源是受信任的。配置示例如下:
[install] trusted-host=http://pypi.douban.com/simple/
当然也可以不用添加,在每次执行pip命令时,附加上--trusted-host参数,后面再把镜像源地址加上就好。
问题
- http://pypi.douban.com不提供HTTPS连接,关心安全问题的话,请三思后再决定是否使用。这个问题也导致在配置时,需要添加--trusted-host参数,假设软件源是安全的。
- 虽然修改了软件源,但是pipsearch命令还是不能使用的,因为搜索软件使用的协议与安装软件不同。pipsearch基于xmlrpclib实现,pipinstall基于urllib2实现。同样地,对pipsearch设置代理,也是不起作用的。