pip安装失败,提示“连接错误:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)”;

我对Python很陌生,正在尝试在Windows 7上使用> pip install linkchecker。一些注意事项:

  • 无论软件包是什么,PIP安装都失败。例如,> pip install scrapy也会导致SSL错误。
  • Python 3.4.1的香草安装包含pip 1.5.6。我尝试做的第一件事是安装链接检查器。Python 2.7已经安装,它是随ArcGIS一起安装的。pythonpip在我安装3.4.1之前从命令行是不可用的。
  • # EYZ0作品。也许这是因为pip搜索不验证站点的SSL证书。
  • 我在一个公司的网络,但我们不通过代理到达互联网。
  • 公司的每台计算机(包括我的)都有一个受信任的根证书颁发机构,用于各种原因,包括启用对https://google.com的TLS流量监控。不知道这和这事有什么关系。

下面是运行pip install linkchecker后我的pip.log的内容:

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
1583920 次浏览

使用--cert参数:

您可以使用以下命令指定证书:

pip --cert <path/to/cert>.pem install <package list>

例如:

pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker

看到:# EYZ0

如果指定您公司的根证书不起作用,也许cURL可以:http://curl.haxx.se/ca/cacert.pem

评论中有报道说,这现在与CRT文件一起工作,但我还没有验证。

还要检查:SSL证书验证

您可以尝试使用http而不是https来绕过SSL错误。当然,这是在安全性方面不是最优的,但如果你赶时间,它应该可以做到:

pip install --index-url=http://pypi.python.org/simple/ linkchecker
我通过删除我的pip并安装旧版本的pip来解决这个问题: # EYZ0 < / p >

在64位Windows 7企业版上使用ActivePython 2.7.8、ActivePython 3.4.1和“库存”Python 3.4.2尝试pip install ftputil时遇到同样的问题。所有尝试都失败了,错误与OP相同。

通过降级到pip 1.2.1: easy_install pip==1.2.1(参见https://stackoverflow.com/a/16370731/234235)来解决Python 3.4.2中的问题。同样的修复也适用于ActivePython 2.7.8。

2013年3月报告的漏洞仍然存在:https://github.com/pypa/pip/issues/829

我最近遇到了这个问题,因为我公司的网页内容过滤器使用自己的证书颁发机构,以便它可以过滤SSL流量。在我的情况下,PIP似乎没有使用系统的CA证书,产生了您提到的错误。后来,将PIP降级到1.2.1版本也出现了一系列问题,所以我回到了Python 3.4附带的原始版本。

我的解决方法非常简单:使用easy_install。要么它不检查certs(就像旧的PIP版本一样),要么它知道使用系统certs,因为它每次都对我有效,我仍然可以使用PIP卸载安装在easy_install中的包。

如果这不起作用,并且您可以访问没有问题的网络或计算机,您总是可以设置自己的个人PyPI服务器:如何创建本地自己的pypi存储库索引没有镜像?

我几乎做到了,直到我尝试使用easy_install作为最后的努力。

我使用easy_install安装了pip 1.2.1,并升级到pip的最新版本(当时是6.0.7),该版本能够在我的情况下安装包。

easy_install pip==1.2.1
pip install --upgrade pip

我发现最直接的方法是从DigiCert在https://www.digicert.com/digicert-root-certificates.htm#roots下载并使用“DigiCert高保证EV根CA”

您可以访问https://pypi.python.org/通过点击地址栏中的锁图标来验证证书颁发者,或者通过使用openssl来增加您的极客信用:

$ 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的名称。

为了一次性的努力,请执行以下操作:

  1. 从DigiCert下载阴极射线管
  2. 将CRT转换为PEM格式
  3. 2 .将PIP_CERT环境变量导出到PEM文件所在路径下

(最后一行假设您正在使用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

要使其可重用,请放入digicerthighassurance anceevrootca。然后在~/.bashrc中导出相应的PIP_CERT。

pip install gensim config --global http.sslVerify false

只需安装任何包与"config -global http。sslVerify false"声明

通过将pypi.orgfiles.pythonhosted.org以及旧的pypi.python.org设置为可信主机,可以忽略SSL错误。

$ pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <package_name>

请注意:在2018年4月的某个时候,Python包索引pypi.python.org迁移到pypi.org。这意味着“trusted-host”;使用旧域的命令不再有效,但您可以同时添加这两个域。

永久解决

自从pip 10.0发布以来,你应该可以通过升级pip本身来永久地修复这个问题:

$ pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pip setuptools

或者通过重新安装它获得最新版本:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

(…然后用相关的Python解释器运行get-pip.py)。

pip install <otherpackage>应该在此之后工作。如果没有,那么您将需要做更多的工作,如下所述。


你可能想要将受信任主机和代理添加到配置文件中

pip.ini (Windows)或pip.conf (unix)

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

替代解决方案(不太安全)

大多数答案都可能带来安全问题。

有两个变通方法可以帮助您轻松安装大多数python包:

  • 使用easy_install:如果你真的很懒,不想浪费太多时间,使用easy_install <package_name>。注意,有些包找不到,或者会出现小错误。
  • 使用轮:下载python包的轮子,使用pip命令pip install wheel_package_name.whl安装。

你有以下可能性来解决CERTIFICATE_VERIFY_FAILED的问题:

  • 使用HTTP而不是HTTPS(例如--index-url=http://pypi.python.org/simple/)。
  • 使用--cert <trusted.pem>CA_BUNDLE变量指定替代CA bundle。

    例如,您可以从web浏览器到失败的URL,并将根证书导入到您的系统

  • 运行python -c "import ssl; print(ssl.get_default_verify_paths())"检查当前的文件(验证是否存在)。

  • OpenSSL有一对环境(SSL_CERT_DIRSSL_CERT_FILE),可以用来指定不同的证书数据库PEP-476
  • 使用--trusted-host <hostname>将主机标记为受信任。
  • 在Python中,使用verify=False代替requests.get(参见:SSL证书验证)。
  • 使用--proxy <proxy>避免证书检查。

更多信息请访问:用于套接字对象的TLS/SSL包装器-验证证书

kenorb的回答非常有用(而且很棒!) 在他的解决方案中,这可能是最简单的一个: # EYZ0 < / p >

例如,在这种情况下你可以这样做

pip install --trusted-host pypi.python.org linkchecker

pem文件(或任何其他文件)是不必要的。

对我来说,这是因为以前我正在运行脚本,设置代理(到提琴手),重新打开控制台或重新启动修复问题。

你可以试着忽略“https”:

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]

为了一劳永逸地解决这个问题,您可以验证您有一个pip.conf文件。

这是你的pip.conf应该在的地方,根据文档:

在Unix上,默认的配置文件是:$HOME/.config/pip/pip.conf,它尊重XDG_CONFIG_HOME环境变量。

在macOS上,如果目录$HOME/Library/Application Support/pip存在,则配置文件为$HOME/Library/Application Support/pip/pip.conf,否则为$HOME/.config/pip/pip.conf

在Windows系统中,配置文件为%APPDATA%\pip\pip.ini

在virtualenv内部:

在Unix和macOS上,文件是$VIRTUAL_ENV/pip.conf

在Windows上,文件是:%VIRTUAL_ENV%\pip.ini

你的pip.conf应该看起来像:

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

在我创建了pip.conf文件后,pip install linkchecker安装了linkchecker,没有任何抱怨。

最近我在visual studio 2015的python 3.6中遇到了同样的问题。在花了2天之后,我得到了解决方案,它对我来说很好。

我在尝试使用pip或从visual studio安装numpy时遇到以下错误 收集numpy 无法获取URL https://pypi.python.org/simple/numpy/:有一个问题确认ssl证书:[ssl: CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:748) -跳过 无法找到满足numpy要求的版本(from versions:) 没有为numpy

找到匹配分布

解决方法:

Windows操作系统

  1. open -> "%appdata%"如果不存在,创建pip文件夹。
  2. 在pip文件夹中创建“pip.ini”文件。
  3. 编辑文件并写入
    (全球)< br > trusted.host = pypi.python.org 保存并关闭文件。现在安装 使用pip/visual studio可以很好地工作

对我来说,所有建议的方法都不起作用——使用cert、HTTP、trusted-host。

在我的例子中,切换到不同版本的包是可行的(在本例中是paho-mqtt 1.3.1,而不是paho-mqtt 1.3.0)。

看来问题只针对那个版本。

在我的例子中,我在最小的alpine docker映像中运行Python。缺少根CA证书。解决办法:

# EYZ0

如果您的系统中缺少某些证书,则可能会遇到此问题。在opensuse上安装ca-certificates-mozilla

一个解决方案(对于Windows)是在%AppData%\pip\文件夹(如果该文件夹不存在,则创建该文件夹)上创建一个名为pip.ini的文件,并插入以下细节:

[global]
cert = C:/certs/python_root.pem
proxy = http://my_user@my_company.com:my_password@proxy_ip:proxy_port

...然后我们可以执行安装指令:

pip3 install PyQt5

另一种选择是使用代理和证书的参数来安装包…

$ pip3 install --proxy http://my_user@my_company.com:my_password@proxy_ip:proxy_port \
--cert C:/certs/python_root.pem PyQt5

要将证书*.cer文件转换为所需的*.pem格式,请执行以下命令:

$ openssl x509 -inform der -in python_root.cer -out python_root.pem

希望这能帮助到一些人!

这个页面上的任何东西都不适合我,直到我使用——verbose选项看到它想要获得files.pythonhosted.org而不是pypi.python.org:

pip install --trusted-host files.pythonhosted.org <package_name>

所以通过——verbose选项检查它失败的URL。

你有4个选择:

使用证书作为参数

$ pip install --cert /path/to/mycertificate.crt linkchecker

pip.conf . xml文件中使用证书

创建这个文件:

$HOME/.pip/pip.conf (Linux)


%HOME%\pip\pip.ini (Windows)

然后加上这几行:

[global]
cert = /path/to/mycertificate.crt

忽略证书并使用HTTP

$ pip install --trusted-host pypi.python.org linkchecker

忽略证书,在pip.conf中使用HTTP

创建这个文件:

$HOME/.pip/pip.conf (Linux)


%HOME%\pip\pip.ini (Windows)

然后加上这几行:

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

  • < a href = " https://pip.pypa。io / en /最近/ user_guide / #配置noreferrer“rel = > https://pip.pypa.io/en/latest/user_guide/配置< / >
到目前为止,当pip已经升级到10,现在他们已经将路径从pypi.python.org更改为files.pythonhosted.org 请更新命令到pip——trusted-host files.pythonhosted.org安装python_package

首先,

    pip install --trusted-host pypi.python.org <package name>

对我没用。我一直得到CERTIFICATE_VERIFY_FAILED错误。然而,我在错误消息中注意到他们引用了“pypi.org”站点。因此,我使用this作为可信主机名,而不是pypi.python.org。这句话几乎把我带到了那里;使用CERTIFICATE_VERIFY_FAILED加载仍然失败,但在稍后的时间点。找到了失败的网站的引用,我把它作为一个可信任的主机。最终对我有用的是:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>

要使用的答案

pip install --trusted-host pypi.python.org <package>

工作。但是你必须检查是否有重定向或缓存pip正在击中。在使用pip 9.0.1的Windows 7上,我必须运行

pip install \
--trusted-host pypi.python.org \
--trusted-host pypi.org \
--trusted-host files.pythonhosted.org \
<package>

您可以使用verbose标志找到这些。

答案非常相似,而且有点令人困惑。在我的案例中,我公司网络中的证书是问题所在。我能够使用以下方法来解决这个问题:

pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org oauthlib -vvv

# EYZ0。如果不需要详细输出,-vvv参数可以省略

Vaulstein的回答帮助了我。

我在我的电脑上找不到pip.ini文件。接下来的事情也是如此。

  1. 进入AppData文件夹。您可以通过打开命令提示符并输入echo % appdata %来获取appdata文件夹

AppData location using command prompt .

或者在windows资源管理器中输入%AppData%。

AppData location in windows explorer

  1. 在appdata文件夹中创建一个名为pip的文件夹。

  2. 在刚才创建的pip文件夹中,创建一个名为pip.ini的简单文本文件

  3. 使用您选择的简单编辑器在该文件中执行以下配置设置。

pip.ini文件:

[list]
format=columns


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

现在应该可以开始了。

时间和日期设置正确!

对我来说,树莓派上的日期和时间配置错误。结果是使用https://files.pythonhosted.org/服务器的所有SSL和HTTPS连接都失败了。

像这样更新:

sudo date -s "Wed Thu  23 11:12:00 GMT+1 2018"
sudo dpkg-reconfigure tzdata

或者直接与谷歌的时间连用:

裁判:# EYZ0

sudo date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
sudo dpkg-reconfigure tzdata
对我来说,通过创建文件夹解决了这个问题 pip,一个文件:pip.ini 在 # EYZ0 例句:< / p >
C:\Users\<username>\AppData\Roaming\pip\pip.ini

我在信里写道:

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

我重新启动python,然后pip永久信任这些站点,并使用它们下载包。

如果你在windows上找不到AppData文件夹,在文件资源管理器中写入%appdata%,它就会出现。

如果您使用make手动安装Python,则必须遵循以下答案:https://stackoverflow.com/a/42798679/6403406以使其工作。

永久解决

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

如:

pip install <package name> --trusted-host pypi.org --trusted-host files.pythonhosted.org

我不确定这是否相关,但我有一个类似的问题,通过将这些文件从Anaconda3/Library/bin复制到Anaconda3/ dll来修复:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll

在我的情况下,这是由于SSL证书是由我公司的内部CA签署的。使用像pip --cert这样的变通方法没有帮助,但是下面的包有帮助:

pip install pip_system_certs

看到:# EYZ0

这个包修补pip并在运行时请求使用来自默认系统存储的证书(而不是捆绑的certs ca)。

这将允许pip验证tls/ssl连接到您的系统安装信任的服务器。

我也遇到过类似的问题。对我有效的解决方法 1)卸载python 2.7 2)删除python27文件夹 3)重新安装最新的python

如果你使用的是虚拟环境,我会推荐使用这个解决方案,

# EYZ0

简短的回答

如果在家里使用公司的机器时遇到这种情况,在工作时再试一次。

细节

我周末遇到了这个。Pip和conda都坏了,无法安装或更新。SO很有帮助,但在公司机器上,许多答案都有问题——解决方案需要pip install(已经不能工作)或需要下载安装程序(我想下载的安装程序被防火墙设置禁止)。

对我有效的是当我上预科的时候再试一次。这很有效。事实证明,在家庭和工作中使用这台机器时,公司防火墙的设置是不同的。

短期解决方案:

easy_install <package name>

例如:

easy_install pandas

替代解决方案:

pip install <package_name> --trusted-host pypi.org --trusted-host files.pythonhosted.org

例子:

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

TLDR:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt -vvv


pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <packageName> -vvv
所以,这个问题已经有30多个答案了,但在2020年6月(封锁期间),什么都对我没用 这些都是在过去的不同时刻被给予的。我将努力让这个答案在未来的任何时候都适用。 问题是,当pip安装包时,它会尝试连接存储包的主机URL,并且在下载时不相信URL 有两种方法可以解决这个问题: 容易的,不安全的: 1.

.

.

.
pip install <packageName> -vvv

如果你仔细检查输出,你会发现它可能会指向一些URL,比如pypi.org或者pypi.python.org。

如果是,只需添加可信主机选项到命令如下:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <packageName> -vvv

或者如果你使用的是需求文件:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt -vvv

安全的方法:

转到这些URL并下载它们的公共证书(只要谷歌如何下载),创建一个链,将其存储为.pem文件,并运行以下命令:

pip --cert YourPemFile.pem install <packageName>

如果您正在使用Anaconda,并且只有在环境中运行pip时才会遇到此问题,则可能需要重新安装python。

在所需的环境中运行conda install python

不要跳过!找到Linux的安全解决方案

所有使用--trusted-host添加pypi.org到可信站点的解决方案都是不安全的,基本上跳过了https, 并没有真正解决问题
使用这种方法的每个人,请尝试以这种方式更新您的证书,并删除--trusted-host标志:

sudo yum -y update ca-certificates
export PIP_CERT=/etc/ssl/certs/ca-bundle.crt

安全很重要!

我尝试了这个回答博客中提供的大多数解决方案,但是没有一个成功,当我试图安装python包时,我有这个ssl certificant error

我通过以下命令成功执行:

python -m pip install PACKAGENAME --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org

或者,如果什么都不行(就像我的情况),你可以恢复到搜索和下载whl文件这里:

https://pypi.org/project/fileDownloader.py/

在通过pip安装它之前,使用下载的文件,不再需要任何证书:

python3.7 -m pip install Myfile.whl

我尝试使用公司代理,但失败了。

我使用Python 3.6

pip.conf文件丢失。

下面是解决这个问题的步骤:

  1. 安装证书包:-pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install certifi

  2. 创建pip.conf文件,如下所示:

     $ cd ~/.config
$ mkdir pip
$ cd pip
$ nano pip.conf

向新创建的.conf文件添加以下内容,并保存它。

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

一切都完成了,它开始工作了。

在安装任何其他包之前运行pip install certifi解决了我的问题

我有这个问题与pip 21.0.1和没有一个答案为我工作。一些人通过降低pip版本来解决这个问题。

如果在2021年你仍然有这个问题,我确实降级为pip 20.2.4,现在它起作用了。

只是把这个放在这里,因为我没有看到其他人提到它。

你可以像这样设置全局可信主机为pip:

py -m pip config set global.trusted-host pypi.org

最重要的是,它将返回放置pip.ini/pip.conf的正确位置

尽管有40个答案,但我认为没有一个能完全解决我的问题。

我在macOS Catalina 10.15.5上,在公司代理的后面。

在尝试安装或升级包时,提示以下错误

>>> pip install <package name>


Looking in indexes: https://pypi.org/simple, https://data:****@pypi.<company>.com/simple/
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': <package name>
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': <package name>

@Steve_Tauber的回答pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker让我明白了其中的一部分。

我能够使用现有的cert文件成功安装包,如下所示:

pip install --cert /Users/me/opt/anaconda3/ssl/cert.pem --upgrade pip

但是我不想每次使用pip时都使用cert标志…

答案是更新环境变量:

CERT_PATH=/Users/me/opt/anaconda3/ssl/cert.pem
export SSL_CERT_FILE=${CERT_PATH}
export REQUESTS_CA_BUNDLE=${CERT_PATH}

现在我可以安装了。

永久固定pip配置

我有ssl问题,由于公司的网络安全有关netscope。我的机器是使用python 3.9的Windows 10,下面的命令对我有效。

pip config set global.trusted-host \
"pypi.org files.pythonhosted.org pypi.python.org" \
--trusted-host=pypi.python.org \
--trusted-host=pypi.org \
--trusted-host=files.pythonhosted.org

在这里,pip永久信任这些站点,现在我们可以使用它们下载任何包。

这对我来说很管用:

$ sudo mv /etc/ssl/cert.pem /etc/ssl/cert.pem.BAK

在我的情况下,我在安装pip时得到了相同的错误,在尝试运行aws CLI命令时也出现了类似的错误。这一周一切正常,下一周就不正常了。AFAIK,我没有安装任何会破坏SSL的东西。

我在MacOS大苏尔,尝试了不同版本的Python 3。通过pyenv和Brew安装。我尝试了这篇文章中列出的所有相关解决方案。我甚至重新安装了操作系统,但还是不行。

这个列表里的东西我都试过了!没有一个成功。 我意识到我的连接不稳定,所以我把调制解调器的电源插了一分钟 解决了我的问题:)

在连接中设置代理,然后运行:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py --proxy proxy:80

修复了我在OSX上的问题,在终端上运行以下程序:

open "/Applications/Python 3.9/Install Certificates.command"

如果已经编译了Python,则执行以下操作在Python中启用SSL。

wget --no-check-certificate https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz
tar -zxf Python-3.9.10.tgz
cd Python-3.9.10
mkdir /home/$USER/tools
export INSTALL_BASE_PATH=/home/$USER/tools


mkdir -p {INSTALL_BASE_PATH}/ssl
vi ./Modules/Setup      # Modify below lines in this file to these
SSL={INSTALL_BASE_PATH}/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
./configure \
--prefix=${INSTALL_BASE_PATH} \
--enable-shared \
--enable-ipv6 \
LDFLAGS=-Wl,-rpath=${INSTALL_BASE_PATH}/lib,--disable-new-dtags


make
make install

对于Python 3.10

添加/更新文件内容

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

文件位置

  1. MacOS - $HOME/Library/Application Support/pip/pip.conf

  2. Unix - $HOME/.config/pip/pip.conf

  3. Windows - %APPDATA%\pip\pip.ini

我得到了同样的错误,即使尝试了许多黑客。 所以我去了官方网站(https://pypi.org/project/),在那里我们可以找到特定包的车轮文件(.whl),并下载了它

现在在命令提示符中:

PIP安装path_to_wheel_file/file_name.whl

现在文件已经成功安装。

如果没有帮助你和你在MacOS上。只需查看python文件夹并运行Install Certificates.command

enter image description here