由于环境错误而无法安装软件包:找不到合适的TLS CA证书包,路径无效

时间:2019-06-24 14:06:10

标签: python ssl pip

我收到此错误:

  

由于环境错误而无法安装软件包:找不到合适的TLS CA证书包,无效路径:/home/yosra/Desktop/CERT.RSA

当我跑步时:$ virtualenv venv

因此,我在工作正常的桌面上放置了一个随机CERT.RSA,并创建了我的虚拟环境,但是随后当我运行时:pip install -r requirements.txt

我得到了这个:

  

由于环境错误而无法安装软件包:HTTPSConnectionPool(host ='github.com',port = 443):URL超过最大重试次数:/KristianOellegaard/django-hvad/archive/2.0.0-beta.tar。 gz(由SSLError(SSLError(0,'未知错误(_ssl.c:3715)'),)引起))

我觉得这两个错误是相互关联的,但是我想知道如何解决第一个错误?

谢谢

5 个答案:

答案 0 :(得分:4)

如果您使用的是Mac(我的操作系统是10.13.6),请使用以下命令:

(security find-certificate -a -p ls /System/Library/Keychains/SystemRootCertificates.keychain &&        security find-certificate -a -p ls /Library/Keychains/System.keychain) > $HOME/.mac-ca-roots

然后使用{p>修改.bashrc

export REQUESTS_CA_BUNDLE="$HOME/.mac-ca-roots"

然后做

$ source ~/.bashrc

答案 1 :(得分:2)

在Windows 10中, 1.使用以下命令找到certifi的位置,以检查是否已安装

import certifi
certifi.where()
  1. 记下cacert.pem文件的路径

  2. 在Windows资源管理器中搜索pip.ini文件,然后在记事本中编辑该文件,然后设置path = <file path of cacert.pem >

答案 2 :(得分:0)

这是我最终所做的,并且对我有用,我正在运行Ubuntu 16.04

  1. 使用$ pip install certifi安装certifi,然后确保您在cacert.pem中拥有/usr/local/lib/python3.6/dist-packages/certifi/cacert.pem证书
  2. 使用pip.conf查找find . -name 'pip.config'文件的位置,我个人在~/.config/pip/pip.conf中找到了它
  3. 最后将cacert.pem的位置添加到pip.conf文件中: $ gedit pip.conf 然后添加:

    [global] cert=/usr/local/lib/python3.6/dist-packages/certifi/cacert.pem

答案 3 :(得分:0)

您需要允许pip引用正确的证书。首先检查证书;

python -c "import certifi; print(certifi.where())"

然后先手动测试;

pip install -r requirements.txt --cert=<the above certificate path>

如果正常,请在$ HOME / .pip / pip.conf(或Windows上的%APPDATA%\ pip \ pip.ini)上的pip.conf文件中更新此路径。例如

[global]
cert = /usr/local/share/ca-certificate/mycert.crt

答案 4 :(得分:0)

我在 Pycharm 中以“pip install flask”的形式运行命令时收到此错误。

如果您查看错误,您会发现错误指向“packages due to an EnvironmentError: Could not find a suitable TLS CA certificate bundle -- Invalid path”。

我通过删除环境变量“REQUESTS_CA_BUNDLE”解决了这个问题,或者您可以将环境变量“REQUESTS_CA_BUNDLE”的名称更改为其他名称。

重启你的 Pycharm,应该可以解决。

谢谢!