安装几乎所有库的pip问题


101

我很难用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.

对这个问题有什么想法吗?在此期间,我非常感谢您提供一些反馈意见,以帮助我解决问题或解决问题。


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

Answers:


136

我发现将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月更新:对于某些更新点子可能就足够了。如果以上错误阻止您执行此操作,请使用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
这为我工作,几年后,在Windows系统上
阿伦巴特勒

23
我仍然遇到错误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
Sankalp

3
我已经更新了我的答案,以谈论TLSV1,因为这是一个完全独立的问题。
奥利弗

8
@peterpod看到这个答案:stackoverflow.com/a/49769015/1526703
Anupam


40

我使用的是pip版本,9.0.1并且存在相同的问题,以上所有答案都无法解决问题,并且由于其他原因,我无法通过brew安装python / pip。

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

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

或者您可以使用以下方法安装更新的点子:

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

如我在@apatsekin答案中的评论中所述,这是由于最近对pip的TLS弃用而发生的。有关详细信息,请参见此答案
Anupam

谢谢..可以确认同样适用于Python 2(在旧版atm上工作)
cardamom

如果conda / anaconda是为什么您不能使用brew或pip更新pip的原因,则可以conda install pip用来安装/升级与conda环境一起使用的pip。如果已安装conda,则应在root / base conda环境中执行此操作
滚刀

1
只需安装PIPcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil

32

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

这解决了Mac OS版本Sierra 10.12.6上的问题。谢谢!
振华

在High Sierra上为我工作。谢谢。
rustyshackleford

28

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

Mac OS版本:EI Captain 10.11.5

python版本: 3.5

我尝试了命令:

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

它对我不起作用。

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

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

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

顺便说一下,对于像我这样的新秀,您必须输入代码: sudo -i

获得根本权利:)祝你好运!


与上述内容相呼应,就是要尝试重新安装python pip,然后重新安装但这对我有用。谢谢!
MikeJannino

不要忽略“ sudo -i”
Dung

27

您可能会看到此错误;也可以在这里看到。

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


1
感谢Dougal,但是1.2.1点也不可行。-您介意让我知道如何将python发行版更新到更新的ssl库吗?
contentclown

实际上,我现在才可以工作。感谢您的帮助,Dougal!
contentclown

7
@ user2348946您做了什么,以便将来对人们有用?
Dougal

1
@DannyStaple是的,这正是我的建议。当然,使用非系统安装的Python并不是很难。我个人使用了Anaconda,它非常适合数字应用程序,但可以用于任何应用。
Dougal 2013年

1
@ user13107是; 如对已接受答案的评论中所述,PyPI现在需要TLS 1.2。您需要更新Python安装。
Dougal '18

18

SSL错误的另一个原因可能是糟糕的系统时间–如果证书与当前时间相距太远,证书将无法验证。


谢谢!!那是唯一对我有用的解决方案。我的服务器的时钟已关闭。
亚当·斯皮尔斯


6

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


6

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

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

须藤点安装pip-10.0.1-py2.py3-none-any.whl

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


5

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

  • 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

3

macOS Sierra 10.12.6。无法通过pip安装任何东西(通过homebrew安装的python)。以上所有答案均无效。

最终,从python 3.5升级到3.6可行。

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

然后按照brew的任何其他建议,即覆盖python的链接。


1
如果您使用的是Mac OS 10.12,则原来的问题实际上可能与的TLS弃用有关pip。有关详细信息,请参见此帖子pip已停止在10.12和较旧版本上支持较旧的安全协议。
Anupam

3

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

您可以在此处下载。


我只是第十次解决了这个问题。尽管非常了解OSX上的问题,并且知道故障是什么以及在哪里发生,每个“解决方案”与过去不同。这次投票是在OSX上进行2.7.15安装。简单有效。此外,还有一些有关SSL / OpenSSH问题的发行说明。干杯,非常感谢!
Marc

3

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

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

您需要同时给出全部三个--trusted-host options。看完答案后,我只尝试了第一个,但那样对我来说并不起作用。


2

您还可以使用conda安装软件包:请参见http://conda.pydata.org

conda install nltk

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

pip install conda
conda init
conda install nltk

7
公平地说,如果pip install不起作用,建议您通过pip安装另一个软件包管理器……嗯,您知道。
戴夫·牛顿

这实际上为我工作。我在安装python之后安装了anaconda。直到我阅读此书之前,我都不知道anaconda具有自己的安装程序。因此,这是对我有用的答案。特拉维斯(Travis)的评论是针对鸡肉/鸡蛋的,因为他建议安装miniconda。
如果NewQuestion投票

2

对我来说,最新的pip(1.5.6)可以与不安全的nltk软件包一起使用,如果您只是告诉它不要对安全性如此挑剔的话:

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

这是一个老答案。pip您使用的是哪个版本?
滚刀

1
我猜是最后一个。我认为我通过卸载所有内容(Python 2.7,pip等)并一次又一次地重新安装所有内容来解决了问题
DaniPaniz

2

试过了

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

最终得出结论,不太了解为什么更改了pypi.python.org域。


1

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

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


1

为了解决此问题,我在Windows 7上执行了以下操作。

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

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

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


1

只需卸载并重新安装将为您锻炼的pip软件包即可。

Mac OS版本:高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

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

如果确定它不能与任何其他模块一起使用,则可能是您安装了不同版本的Python时遇到了问题。

或尝试一下,看是否已安装pip 。:

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

看看是否可行。


0

我通过以下步骤解决了此问题(在les 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'],
  }


0

我在PyCharm中遇到了这个问题,将点子升级到10.0.1时,出现了“在模块中找不到'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

此后,一切开始起作用。




0

我尝试了一些流行的答案,但是仍然无法使用安装任何库/软件包pip install

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

当我这样做时,它终于可以工作了: 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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.