pip安装失败,连接错误:证书validation失败(_ssl.c:598)“
我对Python很> pip install linkchecker ,试图在Windows 7上> pip install linkchecker 。一些注意事项: 
-   pip安装失败,无论包装。 例如, > pip install scrapy也会导致SSL错误。
-   Python 3.4.1的香草安装包括pip 1.5.6。 我试图做的第一件事是安装linkchecker。  Python 2.7已经安装,它随ArcGIS一起提供。 在安装3.4.1之前, python和pip在命令行中是不可用的。
-   > pip search linkchecker作品。 也许这是因为点子search不validation网站的SSL证书。
- 我在公司networking,但我们不通过代理上网。
- 每家公司计算机(包括我的)都有一个受信任的根证书颁发机构,因为各种原因,包括启用对https://google.com的 TLSstream量监控。 不知道这与它有什么关系。
 这里是我的pip.log运行pip install linkchecker后的内容: 
 Downloading/unpacking linkchecker Getting page https://pypi.python.org/simple/linkchecker/ Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598) Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker Getting page https://pypi.python.org/simple/ Could not fetch URL https://pypi.python.org/simple/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by <class 'http.client.CannotSendRequest'>: Request-sent) Will skip URL https://pypi.python.org/simple/ when looking for download links for linkchecker Cannot fetch index base URL https://pypi.python.org/simple/ URLs to search for versions for linkchecker: * https://pypi.python.org/simple/linkchecker/ Getting page https://pypi.python.org/simple/linkchecker/ Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598) Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker Could not find any downloads that satisfy the requirement linkchecker Cleaning up... Removing temporary dir C:\Users\jcook\AppData\Local\Temp\pip_build_jcook... No distributions at all found for linkchecker Exception information: Traceback (most recent call last): File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main status = self.run(options, args) File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "C:\Python34\lib\site-packages\pip\req.py", line 1177, in prepare_files url = finder.find_requirement(req_to_install, upgrade=self.upgrade) File "C:\Python34\lib\site-packages\pip\index.py", line 277, in find_requirement raise DistributionNotFound('No distributions at all found for %s' % req) pip.exceptions.DistributionNotFound: No distributions at all found for linkchecker 
	
新答案:
 您可以使用index-url忽略https并将http url作为parameter passing,然后将其设置为可信来源。 
 pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org <package_name> 
老答案:
大部分答案都可能构成安全问题。
有助于安装大部分python软件包的两种解决方法是:
-   使用easy_install :如果您真的懒惰,不想浪费太多时间,请使用easy_install <package_name>。 请注意,一些软件包将不会被发现或将给小错误。
-   使用Wheel :下载python软件包的wheel并使用pip命令pip install wheel_package_name.whl来安装软件包。
  肯尼伯的答案是非常有用的(和伟大!)。 
 在他的解决scheme中,也许这是最简单的: – --trusted-host 
例如,在这种情况下,你可以做
 pip install --trusted-host pypi.python.org linkchecker 
pem文件(或其他任何东西)是不必要的。
你可以用这个参数指定一个证书:
 pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker 
请参阅: 文档»参考指南»pip
如果指定您的公司的根证书不起作用,也许cURL将工作: http : //curl.haxx.se/ca/cacert.pem
您必须使用PEM文件而不是CRT文件。 如果你有一个CRT文件,你将需要将文件转换为PEM
另请检查: SSL证书validation 。
我find的最直接的方法是下载并使用DigiCert的“DigiCert High Assurance EV Root CA”( https://www.digicert.com/digicert-root-certificates.htm#roots);
您可以访问https://pypi.python.org/ ,通过点击地址栏中的锁图标来validation证书颁发者,或者使用openssl来增加您的geek cred:
 $ openssl s_client -connect pypi.python.org:443 CONNECTED(00000003) depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA verify error:num=20:unable to get local issuer certificate verify return:0 --- Certificate chain 0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro,/O=Python Software Foundation/CN=www.python.org i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA 
证书链中的最后一个CN值是您需要下载的CA的名称。
为了一次性努力,请执行以下操作:
- 从DigiCert下载CRT
- 将CRT转换为PEM格式
- 将PIP_CERT环境variables导出到PEM文件的path中
(最后一行假定你正在使用bash shell),然后运行pip。
 curl -sO http://cacerts.digicert.com/DigiCertHighAssuranceEVRootCA.crt openssl x509 -inform DES -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem -text export PIP_CERT=`pwd`/DigiCertHighAssuranceEVRootCA.pem 
为了使这个可重复使用,把DigiCertHighAssuranceEVRootCA.crt放在一个共同的地方,并相应地在你的〜/ .bashrc中导出PIP_CERT。
 您有以下可能性来解决CERTIFICATE_VERIFY_FAILED问题: 
- 使用HTTP而不是HTTPS。
- 
使用 --cert <trusted.pem>或CA_BUNDLEvariables指定备用CA软件包。例如,你可以去网页浏览器失败的URL,并将根证书导入你的系统。 
- 
运行 python -c "import ssl; print(ssl.get_default_verify_paths())"来检查当前的(validation是否存在)。
-   OpenSSL有一对环境( SSL_CERT_DIR,SSL_CERT_FILE),可以用来指定不同的证书数据库PEP-476 。
-  使用--trusted-host <hostname>将主机标记为可信。
-  在Python中,对requests.get使用verify=False(请参阅: SSL Cert Verification )。
-  使用--proxy <proxy>来避免证书检查。
有关套接字对象的更多信息,请参阅: TLS / SSL封装 – validation证书 。
您可以尝试使用http而不是https来绕过SSL错误。 当然这在安全性方面并不是最佳的 ,但是如果你很着急的话,它应该可以做到这一点:
 pip install --index-url=http://pypi.python.org/simple/ linkchecker 
我最近遇到了这个问题,因为我公司的Web内容filter使用自己的证书颁发机构,以便它可以过滤SSLstream量。 PIP似乎没有在我的情况下使用系统的CA证书,产生你提到的错误。 将PIP降级到版本1.2.1后来出现了自己的问题,所以我回到了Python 3.4附带的原始版本。
 我的解决方法很简单:使用easy_install 。 要么它不检查证书(如旧的PIP版本),要么知道使用系统证书,因为它每次都适用于我,我仍然可以使用PIP卸载使用easy_install安装的软件包。 
如果这不起作用,您可以访问不存在问题的networking或计算机,则可以始终设置您自己的个人PyPI服务器: 如何在不使用镜像的情况下创build本地pypi存储库索引?
 我几乎这样做,直到我尝试使用easy_install作为最后的努力。 
我用easy_install安装了pip 1.2.1,并升级到最新版本的pip(当时是6.0.7),可以在我的情况下安装软件包。
 easy_install pip==1.2.1 pip install --upgrade pip 
 有相同的问题尝试pip install ftputil与64位Windows 7企业版的ActivePython 2.7.8,ActivePython 3.4.1,和“股票”Python 3.4.2的pip install ftputil 。 所有尝试失败与OP相同的错误。 
 通过降级到pip 1.2.1解决了Python 3.4.2的问题: easy_install pip==1.2.1 (请参阅https://stackoverflow.com/a/16370731/234235 )。 同样的修复也适用于ActivePython 2.7.8。 
2013年3月报告的这个错误仍然存在: https : //github.com/pypa/pip/issues/829 。
为了解决sslvalidation问题,
这是我尝试和工作的东西。 当我尝试安装无法正确的软件时,出现错误,所以我把软件包名称放入了。
这告诉pip信任从我们下载的主机pypi.python.org并且信任它与我们的包裹。
pip install –trusted-host pypi.python.org ansible
pip安装–trusted-host pypi.python.org – 升级pip
我通过删除我的点子并安装旧版本的点子来解决这个问题: https : //pypi.python.org/pypi/pip/1.2.1
你可以尝试这个来忽略“https”:
 pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org [your package..] 
 要一劳永逸地解决这个问题,你可以validation你有一个pip.conf文件。 
 这是你的pip.conf应该在哪里,根据文件 : 
在Unix上,默认的configuration文件是:
$HOME/.config/pip/pip.conf,它考虑了XDG_CONFIG_HOME环境variables。在macOS上,configuration文件是
$HOME/Library/Application Support/pip/pip.conf。在Windows上,configuration文件是
%APPDATA%\pip\pip.ini。
 你的pip.conf应该是这样的: 
 [global] trusted-host = pypi.python.org 
 在创buildpip.conf文件后, pip install linkchecker安装了linkchecker而没有发生抱怨。 
对我来说这是因为以前我正在运行脚本,其中设置代理(对小提琴手),重新打开控制台或重新启动修复问题。
最近我在Visual Studio 2015中遇到了与python 3.6相同的问题。花费了2天之后,我得到了解决scheme并且对我的工作很好。
我得到下面的错误,而尝试使用点或从Visual Studio安装numpy收集numpy无法获取URL https://pypi.python.org/simple/numpy/ :确认SSL证书有问题:[SSL:CERTIFICATE_VERIFY_FAILED]证书validation失败(_ssl.c:748) – 跳过找不到满足要求numpy的版本(从版本:)找不到匹配的分布numpy
parsing度 :
对于Windows操作系统
- 打开 – >“%appdata%”如果不存在,创build“pip”文件夹。
- 在pip文件夹中创build“pip.ini”文件。
-  编辑文件并写入 
 [全球]
 trusted-host = pypi.python.org保存并closures文件。 现在安装使用pip / visual studio它工作正常。
对于我来说,没有任何build议的方法 – 使用证书,HTTP,可信主机。
在我的情况下切换到不同版本的包(paho-mqtt 1.3.1,而不是本例中的paho-mqtt 1.3.0)。
看起来问题是特定于该包版本。
在我的情况下,我观察到,安装相关软件包时,PIP失败。 在我的情况下,python热客户端需要位置,这需要pbr。 pbr的安装失败了。 当我安装python-heatclient之前显式安装pbr,它按预期工作。
 调用失败的venv/bin/pip install python-heatclient 
调用成功
 venv/bin/pip install pbr 
 venv/bin/pip install python-heatclient