1.遇到问题:
安装完python之后,使用pip包管理器安装包的时候提示:
Retrying (Retry(total=4, connect=None, read=None, redirect=None))
after connection broken
by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.
VerifiedHTTPSConnection object at 0x10b058850>,
'Connection to pypi.python.org timed out. (connect timeout=15)')':
2.分析问题:
说明你采用了默认的pypi源(国外的pypi源),这个很容易出现这种连接超时的问题,所以应当采用国内的镜像源,常见的国内镜像源:
阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban)
http://pypi.douban.com/simple/ 清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple/
3.解决问题:
a).在安装命令后面带上 -i + pypi源:
pip install xx -i http://pypi.douban.com/simple/
如果出现这种情况:
pypi.douban.com is not a trusted or secure host and is being ignored...
那么可以使用下面这个命令:
pip install xx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
b).上面的方法每次都要添加一长串后缀,那么可以使用修改配置问题的方式来修改默认的源:
- 在liunx环境下,在当前登录用户的用户目录下面新建pip.conf文件。
vim ~/.pip/pip.conf
- 在Windows环境下想要更改pypi源,可以在%APPDATA%目录下新建pip文件夹,再在pip文件夹下新建pip.ini。
(如果路径中已经存在了文件夹或者文件,就不用创建了,另外你可以在cmd下输入"echo %APPDATA%"查看%APPDATA%代表的路径是哪)
如果想用清华大学的pypi源,那么pip.ini文件里面的内容可以这么写:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
现在使用pip来安装时,就会默认调用该镜像,你不需要再添加那些后缀了。当然如果你想临时修改某个pypi源,(不想用清华镜像,想用豆瓣镜像)这也是可以的,操作方法如下:
在前面添加如下代码:
import os
package = raw_input("Please input the package which you want to install:\n")
command = "pip install %s -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com" % package
os.system(command)