python pip install报错 unable to get local issuer certificate (_ssl.c:1125) code example解决方法

本质是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

尝试了网上很多种解决方法。现总结解决我的表面问题和实际问题的两种方法。
解决完之后 装已存在的包的效果如下~
python pip install报错 unable to get local issuer certificate (_ssl.c:1125) code example解决方法_第1张图片
常见的改国内镜像源我都试过了,无法解决1125的错误,仍然会报错。(注意,大家先关闭代理、尝试国内源排除错误原因,毕竟也可能是网络错误)
而最终帮助我成功安装包的方式有两种

方法一 添加受信任主机

这种方式需要每一次pip的时候都多加一段代码,很麻烦

pip install phe  requests -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -r requirements.txt

或者假设 你要装这个包

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org 

注:在2018年4月的某个时候,python包索引从pypi.python.org迁移到pypi.org。这意味着使用旧域的"受信任主机"命令不再有效。
(所以21年的小伙伴要将pypi.org设为受信任主机~)

这个时候我就先去研究我的代码问题了。
等我研究完,我觉得,以后每次pip都这样也太麻烦了吧,所以我赶紧研究到了如何能改变pip的配置~

方法二 修改pip配置

python pip install报错 unable to get local issuer certificate (_ssl.c:1125) code example解决方法_第2张图片可以看到这里有一种修改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

足以找到对应路径
python pip install报错 unable to get local issuer certificate (_ssl.c:1125) code example解决方法_第3张图片
但是如果小伙伴和我一样,这里找对应路径没有对应文件该怎么办呢?
直接设置global的配置,即到C:/ProgramData下创建pip文件夹,新建pip.ini

python pip install报错 unable to get local issuer certificate (_ssl.c:1125) code example解决方法_第4张图片

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

python pip install报错 unable to get local issuer certificate (_ssl.c:1125) code example解决方法_第5张图片
当然pip.ini能配置的内容不止这些,我们也可以将国内源加入其中等等。详细见官方文档(https://pip.pypa.io/en/latest/topics/configuration/)

到此 我直接pip install 已经不会报couldn’t fetch url了

你可能感兴趣的:(debug合集,ssl,python)