本质是ssl证书认证失败。我们需要访问的是http的链接,但是访问https:的了,所以访问失败。
报错信息
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org’, port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:1125)’))) - skipping
尝试了网上很多种解决方法。现总结解决我的表面问题和实际问题的两种方法。 解决完之后 装已存在的包的效果如下~ 常见的改国内镜像源我都试过了,无法解决1125的错误,仍然会报错。(注意,大家先关闭代理、尝试国内源排除错误原因,毕竟也可能是网络错误) 而最终帮助我成功安装包的方式有两种
方法一 添加受信任主机
这种方式需要每一次pip的时候都多加一段代码,很麻烦
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -r requirements.txt
或者假设 你要装<package_name>这个包
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package_name>
注:在2018年4月的某个时候,python包索引从pypi.python.org迁移到pypi.org。这意味着使用旧域的"受信任主机"命令不再有效。 (所以21年的小伙伴要将pypi.org设为受信任主机~)
这个时候我就先去研究我的代码问题了。 等我研究完,我觉得,以后每次pip都这样也太麻烦了吧,所以我赶紧研究到了如何能改变pip的配置~
方法二 修改pip配置
可以看到这里有一种修改pip配置,直接设置为受信任主机的解决方法。 于是我开始了我的找pip配置文件的旅程。
官方文档如下:
Location
pip’s configuration files are located in fairly standard locations. This location is different on different operating systems, and has some additional complexity for backwards compatibility reasons.
Global
- On Windows 7 and later: C:\ProgramData\pip\pip.ini (hidden but writeable)
- On Windows Vista: Global configuration is not supported.
- On Windows XP: C:\Documents and Settings\All Users\Application Data\pip\pip.ini
User
%APPDATA%\pip\pip.ini
The legacy “per-user” configuration file is also loaded, if it exists: %HOME%\pip\pip.ini
Site
%VIRTUAL_ENV%\pip.ini
这是通常存放pip.ini的标准位置,理论上只要修改这里的ini配置文件即可。但是我并没有找到pip.ini 实际上我们也可以通过
pip -v config list
足以找到对应路径 但是如果小伙伴和我一样,这里找对应路径没有对应文件该怎么办呢? 直接设置global的配置,即到C:/ProgramData下创建pip文件夹,新建pip.ini
[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org
当然pip.ini能配置的内容不止这些,我们也可以将国内源加入其中等等。详细见官方文档(https://pip.pypa.io/en/latest/topics/configuration/)
到此 我直接pip install 已经不会报couldn’t fetch url了
|