pip安装失败,并显示“连接错误:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:598)" [英] pip install fails with "connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)"
问题描述
我刚接触Python,并尝试在Windows 7上使用> pip install linkchecker
.一些注意事项:
I am very new to Python and trying to > pip install linkchecker
on Windows 7. Some notes:
-
无论软件包如何,
- 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
有效.也许是因为点子搜索无法验证站点的SSL证书. - 我在公司网络中,但是我们没有通过代理访问Internet.
- 每台公司计算机(包括我的计算机)都具有受信任的根证书颁发机构,其使用原因有多种,其中包括启用对到 https://google.com .不确定是否与此有关.
- pip install is failing no matter the package. For example,
> pip install scrapy
also results in the SSL error. - Vanilla install of Python 3.4.1 included pip 1.5.6. The first thing I tried to do was install linkchecker. Python 2.7 was already installed, it came with ArcGIS.
python
andpip
were not available from the command line until I installed 3.4.1. > pip search linkchecker
works. Perhaps that is because pip search does not verify the site's SSL certificate.- I am in a company network but we do not go through a proxy to reach the Internet.
- Each company computer (including mine) has a Trusted Root Certificate Authority that is used for various reasons including enabling monitoring TLS traffic to https://google.com. Not sure if that has anything to do with it.
这是我运行pip install linkchecker
后的 pip.log 的内容:
Here are the contents of my pip.log after running 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
推荐答案
-----> pip install gensim config --global http.sslVerify false
-----> pip install gensim config --global http.sslVerify false
只需使用"config --global http.sslVerify false"语句安装任何软件包
Just install any package with the "config --global http.sslVerify false" statement
您可以通过设置 pypi.org
和
You can ignore SSL errors by setting pypi.org
and files.pythonhosted.org
as trusted hosts.
$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package_name>
注意:在2018年4月的某个时候, Python包索引已从pypi.python.org
迁移到pypi.org
.这意味着使用旧域的受信任的主机"命令不再起作用.
Note: Sometime during April 2018, the Python Package Index was migrated from pypi.python.org
to pypi.org
. This means "trusted-host" commands using the old domain no longer work.
自pip 10.0发行以来,您应该能够仅通过升级pip
本身来永久解决此问题:
Since the release of pip 10.0, you should be able to fix this permanently just by upgrading pip
itself:
$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org pip setuptools
或者只需重新安装它以获取最新版本:
Or by just reinstalling it to get the latest version:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
(…,然后使用相关的Python解释器运行get-pip.py
).
(… and then running get-pip.py
with the relevant Python interpreter).
pip install <otherpackage>
应该在此之后工作.如果没有,那么您将需要做更多的事情,如下所述.
pip install <otherpackage>
should just work after this. If not, then you will need to do more, as explained below.
您可能需要将受信任的主机和代理添加到您的配置文件.
pip.ini
(Windows)或pip.conf
(unix)
pip.ini
(Windows) or pip.conf
(unix)
[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org
备用解决方案(安全程度较低)
大多数答案都可能带来安全问题.
Most of the answers could pose a security issue.
有助于轻松安装大多数python软件包的两种解决方法是:
Two of the workarounds that help in installing most of the python packages with ease would be:
- 使用easy_install :如果您真的很懒,不想浪费很多时间,请使用
easy_install <package_name>
.请注意,将找不到某些软件包,或者会产生一些小错误. - 使用转盘:下载 Python包的车轮,然后使用pip命令
pip install wheel_package_name.whl
安装该软件包.
- Using easy_install: if you are really lazy and don't want to waste much time, use
easy_install <package_name>
. Note that some packages won't be found or will give small errors. - Using Wheel: download the Wheel of the python package and use the pip command
pip install wheel_package_name.whl
to install the package.
这篇关于pip安装失败,并显示“连接错误:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:598)"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!