安装几乎任何库的 pip 问题

pip issue installing almost any library

提问人:contentclown 提问时间:5/4/2013 最后编辑:ROMANIA_engineercontentclown 更新时间:9/8/2023 访问量:367791

问:

我很难使用 pip 来安装几乎任何东西。我是编码新手,所以我想这可能是我一直做错的事情,并选择退出easy_install以完成我需要完成的大部分工作,这通常奏效了。但是,现在我正在尝试下载 nltk 库,但两者都无法完成工作。

我试着进入

sudo pip install nltk

但得到以下回应:

/Library/Frameworks/Python.framework/Versions/2.7/bin/pip run on Sat May  4 00:15:38 2013
Downloading/unpacking nltk

  Getting page https://pypi.python.org/simple/nltk/
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link]/simple/nltk/ when looking for download links for nltk

  Getting page [need more reputation to post link]/simple/
  Could not fetch URL https://pypi.python. org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Cannot fetch index base URL [need more reputation to post link]

  URLs to search for versions for nltk:
  * [need more reputation to post link]
  Getting page [need more reputation to post link]
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Could not find any downloads that satisfy the requirement nltk

No distributions at all found for nltk

Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 266, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1026, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/index.py", line 171, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for nltk

--easy_install installed fragments of the library and the code ran into trouble very quickly upon trying to run it.

对这个问题有什么想法吗?我非常感谢一些关于如何让 pip 工作或在此期间解决这个问题的反馈。

python pip nltk 易于安装

评论

2赞 Anupam 6/12/2018
对于所有网站都收到此错误的人来说,这是因为最近 Python.org 网站弃用了TLS。看到这个答案[SSL: TLSV1_ALERT_PROTOCOL_VERSION]pip install

答:

28赞 Danica 5/4/2013 #1

你可能看到了这个错误;另请参阅此处

最简单的解决方法是将 pip 降级为不使用 SSL: 的 pip。这会使您失去使用 SSL 的安全优势。真正的解决方案是使用链接到更新的 SSL 库的 Python 发行版。easy_install pip==1.2.1

评论

1赞 contentclown 5/4/2013
谢谢 Dougal,但 pip 1.2.1 也不起作用。- 你介意让我知道如何将我的 python 发行版更新到更新的 ssl 库吗?
0赞 contentclown 5/4/2013
实际上,我刚才刚刚让一切正常。谢谢你的帮助,Dougal!
7赞 Danica 5/4/2013
@user2348946 你做了什么,以便这对未来的人们有用?
1赞 Danica 7/12/2013
@DannyStaple 是的,这正是我的建议。当然,使用非系统安装的 Python 并不是很困难;我个人使用 Anaconda,它非常适合数值应用,但适用于任何事情。
1赞 Danica 5/24/2018
@user13107 是的;正如对已接受答案的评论中所述,PyPI 现在需要 TLS 1.2。您需要更新 Python 安装。
0赞 akshayb 5/4/2013 #2

如果只是关于nltk,我曾经遇到过类似的问题。尝试按照以下指南进行安装。安装 NLTK

如果您确定它不适用于任何其他模块,则安装不同版本的 Python 可能会有问题。

或者试一试,看看它是否说 pip 已经安装。

sudo apt-get install python-pip python-dev build-essential 

看看它是否有效。

19赞 pidge 1/24/2014 #3

SSL错误的另一个原因可能是系统时间过短 - 如果它与现在相差太远,证书将无法验证。

评论

0赞 Adam Spiers 8/2/2019
谢谢!!这是唯一对我有用的解决方案。我的服务器时钟偏离了。
2赞 Travis Oliphant 6/15/2014 #4

还可以使用 conda 安装包:请参阅 http://conda.pydata.org

conda install nltk

使用 conda 的最佳方式是下载 Miniconda,但您也可以尝试

pip install conda
conda init
conda install nltk

评论

12赞 Dave Newton 9/15/2014
公平地说,如果不起作用,建议通过 pip 安装另一个包管理器是......嗯,你知道的。pip install
0赞 Be Kind To New Users 12/2/2016
这实际上对我有用。我在安装 python 后安装了 anaconda。在我读到这篇文章之前,我不知道 anaconda 有自己的安装程序。所以,这是对我有用的答案。Travis 的评论解决了先有鸡还是先有蛋的问题,因为他建议安装 miniconda。
0赞 spuder 8/1/2014 #5

我通过以下步骤解决了这个问题(在 sles 11sp2 上)

zypper remove pip
easy_install pip=1.2.1
pip install --upgrade scons

以下是 puppet 中的相同步骤(应该适用于所有发行版)

  package { 'python-pip':
    ensure => absent,
  }
  exec { 'python-pip':
    command  => '/usr/bin/easy_install pip==1.2.1',
    require  => Package['python-pip'],
  }
  package { 'scons': 
    ensure   => latest,
    provider => pip,
    require  => Exec['python-pip'],
  }
2赞 hobs 9/20/2014 #6

对我来说,最新的 pip (1.5.6) 适用于不安全的 nltk 包,如果您只是告诉它不要对安全性如此挑剔:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk

评论

0赞 hobs 6/15/2018
这是一个古老的答案。你使用的是哪个版本?pip
1赞 DaniPaniz 6/16/2018
我猜是最后一个。我想我通过卸载所有内容(Python 2.7、pip 等)并一遍又一遍地重新安装所有内容来解决问题
7赞 Ruben 8/10/2016 #7

我通过添加选项解决了类似的问题--trusted-host pypi.python.org

149赞 Oliver 8/12/2016 #8

我发现将 pypi 主机指定为受信任就足够了。例:

pip install --trusted-host pypi.python.org pytest-xdist
pip install --trusted-host pypi.python.org --upgrade pip

这解决了以下错误:

  Could not fetch URL https://pypi.python.org/simple/pytest-cov/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) - skipping
  Could not find a version that satisfies the requirement pytest-cov (from versions: )
No matching distribution found for pytest-cov

2018年4月更新: 对于任何收到TLSV1_ALERT_PROTOCOL_VERSION错误的人:它与 OP 的受信任主机/验证问题或此答案无关。相反,TLSV1 错误是因为您的解释器不支持 TLS v1.2,您必须升级您的解释器。例如,参见 https://news.ycombinator.com/item?id=13539034http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.htmlhttps://bugs.python.org/issue17128

2019年2月更新: 对于某些人来说,升级 pip 可能就足够了。如果上述错误阻止您执行此操作,请使用 get-pip.py。例如,在 Linux 上,

curl https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

更多详情请见 https://pip.pypa.io/en/stable/installing/

评论

4赞 Allen Butler 8/31/2016
多年后,这在 Windows 系统上对我有用
32赞 Sankalp 4/11/2018
我仍然收到一个错误-Could not fetch URL https://pypi.python.org/simple/pytest-xdist/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
3赞 Oliver 4/12/2018
我已经更新了我的答案来谈论 TLSV1,因为它是一个完全独立的问题。
8赞 Anupam 4/14/2018
@peterpod看到这个答案:stackoverflow.com/a/49769015/1526703
1赞 lostsoul29 6/23/2017 #9

如果通过代理进行连接,请执行(在 Unix 或 Git Bash 上),然后重试安装。export https_proxy=<your_proxy>

如果您使用的是 Windows cmd,则此值将更改为 .set https_proxy=<your_proxy>

1赞 user9175040 1/5/2018 #10

我在 Windows 7 上做了以下操作来解决这个问题。

c:\Program Files\Python36\Scripts> pip install beautifulsoup4 --trusted-host *

--trusted-host 似乎解决了 SSL 问题,* 表示每个主机。

当然,这是行不通的,因为您会遇到其他错误,因为没有满足 beautifulsoup4 要求的版本,但我认为该问题与一般问题无关。

3赞 apatsekin 4/12/2018 #11

macOS Sierra 10.12.6。无法通过 pip 安装任何东西(python 通过自制软件安装)。上面的所有答案都不起作用。

最终,从 python 3.5 升级到 3.6 奏效了。

brew update
brew doctor #(in case you see such suggestion by brew)

然后遵循 brew 的任何其他建议,即覆盖指向 Python 的链接。

评论

1赞 Anupam 4/12/2018
如果您使用的是 Mac OS 10.12,则原始问题实际上可能与最近弃用 TLS 有关。有关详细信息,请参阅此帖子。 已停止在 10.12 及更早版本上支持较旧的安全协议。pippip
44赞 rom 4/12/2018 #12

我使用了 pip 版本并遇到了同样的问题,上面的所有答案都没有解决问题,并且由于其他原因我无法使用 brew 安装 python / pip。9.0.1

升级pip即可解决问题。而且由于我无法使用 pip 升级 pip,所以我下载了源代码并手动安装。9.0.3

  1. 从以下位置下载正确版本的 pip - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz- 安装 pip

或者您可以使用以下命令安装较新的 pip:

curl https://bootstrap.pypa.io/get-pip.py | python

评论

0赞 Anupam 4/12/2018
正如我在对 @apatsekin 的回答的评论中提到的,这是由于最近弃用 pip 的 TLS。有关详细信息,请参阅此答案
0赞 cardamom 4/12/2018
谢谢。。可以确认同样适用于 Python 2(我正在研究遗留的 atm)
0赞 hobs 4/13/2018
如果 conda/anaconda 是你不能使用 brew 或 pip 更新 pip 的原因,那么你可以使用它来安装/升级你用于 conda 环境的 pip。如果安装了 conda,则应在根/基本 conda 环境中执行此操作conda install pip
1赞 Sumeet Gohil 9/20/2018
只需安装 pipcurl https://bootstrap.pypa.io/get-pip.py | python
32赞 Aachen 4/15/2018 #13

我使用了 pip3 版本,最近无法通过该命令安装任何软件包。9.0.1pip3 install

Mac os版本:EI Captain .10.11.5

python版本:3.5

我尝试了命令:

curl https://bootstrap.pypa.io/get-pip.py | python

它对我不起作用。

因此,我卸载了较旧的pip,并通过输入以下内容安装了最新版本:10.0.0

python3 -m pip uninstall pip setuptools
curl https://bootstrap.pypa.io/get-pip.py | python3

现在我的问题解决了。 如果您使用的是 python2,则可以将 python3 替换为 python。我希望它也对你有用。

顺便说一句,对于像我这样的一些菜鸟,你必须输入代码:sudo -i

获得根权:)祝你好运!

评论

0赞 MikeJannino 6/13/2018
与上述内容相呼应,即将尝试重新安装 python pip,但这对我有用。谢谢!
0赞 Dung 7/31/2019
不要忽略“sudo -i”
33赞 Parth Choudhary 4/22/2018 #14

Pypi 删除了对低于 1.2 的 TLS 版本的支持

您需要重新安装 Pip,请执行

curl https://bootstrap.pypa.io/get-pip.py | python

或者对于全局 Python:

curl https://bootstrap.pypa.io/get-pip.py | sudo python

评论

0赞 Zhenhua 5/19/2018
这解决了Mac OS版本Sierra 10.12.6上的问题。感谢!
0赞 rustyshackleford 7/10/2018
在High Sierra上为我工作。谢谢。
7赞 Jianzhe Gu 4/23/2018 #15

要安装任何其他软件包,我必须使用最新版本的pip,因为有这个SSL问题。要通过 pip 本身升级 pip,我必须先解决这个 SSL 问题。 为了跳出这个无休止的循环,我发现这是唯一适合我的方法。9.0.1

  1. 在此页面中查找最新版本的 pip: https://pypi.org/simple/pip/
  2. 下载最新版本的文件。.whl
  3. 使用 pip 安装最新的 pip。(在此处使用您自己的最新版本)

sudo pip 安装 pip-10.0.1-py2.py3-none-any.whl

现在 pip 是最新版本,可以安装任何东西。

0赞 Gaurao 4/25/2018 #16

在 mac 上使用最新版本的 python Python 2.7.15rc1 https://bugs.python.org/issue17128

0赞 Yuriy M 4/26/2018 #17

我在 PyCharm 中遇到了这个问题,将 pip 升级到 10.0.1 破坏了 pip,并出现“在模块中找不到'main'”错误。

我可以通过安装 pip 9.0.3 来解决此问题,如在其他线程中看到的那样。这些是我做的步骤:

  1. https://pypi.org/simple/pip/ 下载了 9.0.3 版本的 pip(因为 pip 不能用于安装它)。
  2. 从 tar.gz 安装 pip 9.0.3 python -m pip 安装 pip-9.0.3.tar.gz

在那之后,一切都开始工作了。

26赞 RollerCosta 5/5/2018 #18

解决方案 - 通过标记以下受信任的主机来安装任何软件包

  • pypi.python.org
  • pypi.org
  • files.pythonhosted.org

临时解决方案

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org {package name}

永久解决方案 - 将您的 PIP(版本 9.0.1 的问题)更新到最新版本。

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pytest-xdist

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

评论

1赞 Dominik 2/11/2021
多谢。尝试 30 次后,这可以正常工作。我使用 pip 版本 20.2.3 和 21.0.1 对其进行了测试
0赞 Alexis 6/30/2022
使用 pip 版本 22.0.4 像魅力一样工作
0赞 GenDemo 7/14/2022
谢谢,这有效(永久解决方案)>似乎我现在每次都需要使用整个字符串......但它现在正在安装软件包。
0赞 GenDemo 7/14/2022
谢谢,这有效(永久解决方案)>似乎我现在每次都需要使用整个字符串......但它现在正在安装软件包。
3赞 Günay Gültekin 5/16/2018 #19

我有同样的问题。我刚刚将 python 从 2.7.0 更新到 2.7.15它解决了问题。

你可以在这里下载。

评论

0赞 Marc 6/28/2018
我刚刚第 10 次修复了这个问题。尽管非常了解OSX上的问题,并且知道失败的原因和位置,但每个“解决方案”都与过去不同。这次投票是在OSX上安装2.7.15。简单有效。此外,该版本中还有关于SSL / OpenSSH问题的说明。干杯,非常感谢!
10赞 gowin 5/25/2018 #20

唯一对我有用的解决方案是:

须藤卷曲 https://bootstrap.pypa.io/get-pip.py |sudo python

3赞 blackjar 6/21/2018 #21

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

最后弄清楚了,不太明白为什么域名 pypi.python.org 会改变。

0赞 Golangg Go 7/11/2018 #22

这个视频教程对我有用:

$ curl https://bootstrap.pypa.io/get-pip.py | python
9赞 abhi 7/31/2018 #23

正如 blackjar 在上面发布的那样,以下几行对我有用

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

你需要给这三个.在查看答案后,我只尝试了第一个,但它对我不起作用。--trusted-host options

评论

0赞 Potatojaisiladki 3/3/2021
这对我有用。我遇到了同样的问题,只尝试了一个受信任的问题。使用这三者就可以破解交易。
0赞 GenDemo 7/14/2022
同样 - 是的,他的帖子也对我有用。
1赞 Yash Patel 9/25/2018 #24

只需卸载并重新安装 pip 包,它就会为你们锻炼。

Mac OS 版本:High Sierra 10.13.6

Python版本:3.7

所以我卸载了旧的 pip 并通过输入以下内容安装了最新版本 10.0.0:

python3 -m pip uninstall pip setuptools

curl https://bootstrap.pypa.io/get-pip.py | python3

现在我的问题解决了。如果您使用的是 python2,则可以将 python3 替换为 python。我希望它也对你有用。

0赞 yanjun qin 8/16/2019 #25

我通过在 mac 上更新 Python3 Virtualenv 解决了这个问题。 我参考了网站 https://gist.github.com/pandafulmanda/730a9355e088a9970b18275cb9eadef3
brew install python3
pip3 install virtualenv

22赞 datchung 8/12/2020 #26

我尝试了一些流行的答案,但仍然无法使用 .pip install

我的具体错误是使用 Miniconda for Windows(安装程序 Miniconda3-py37_4.8.3-Windows-x86.exe)。'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain

当我这样做时,它终于起作用了:pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

具体来说,我添加了这个以使其工作:--trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

评论

0赞 GenDemo 7/14/2022
相同 - 看看上面的这个答案,它对我有用:stackoverflow.com/a/50180328/11187883
0赞 MiThCeKi 6/14/2021 #27

尝试安装 xcode,然后使用自制软件使用“brew install pipenv”安装 pipenv。

评论

1赞 Yunnosch 6/14/2021
欢迎来到 Stack Overflow!我建议不要在回答中使用修辞问题。他们有可能被误解为根本不是答案。您正在尝试回答本页顶部的问题,不是吗?否则请删除此帖子。
0赞 MrObjectOriented 4/26/2022 #28

对我来说,我必须取消设置我必须添加的变量才能使模块正常工作。有关更多信息,请查看:https://docs.python-requests.org/en/master/user/advanced/#ssl-cert-verificationREQUESTS_CA_BUNDLEhvac

0赞 geogan 9/8/2023 #29

我在安装软件包时遇到了同样的问题,并在我的情况下找到了原因......似乎我在 Windows 上运行了一个第三方“媒体下载器”,它充当所有 SSL 流量的中间人,因此它可以拦截和下载视频等......当我尝试 Pycharm 失败的 URL 时,我可以看到这一点:

无法获取 URL https://pypi.org/simple/pip/:确认 ssl 证书时出现问题:

将 https://pypi.org/simple/pip/ 放入浏览器并将鼠标悬停在SSL区域上 - 它会显示“由您的下载程序验证”而不是“由威瑞信验证”

在中路攻击中切掉那个男人!