pip安装几乎任何库时出现问题
pip安装几乎任何库时出现问题
我在使用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
下载/安装nltk
获取页面https://pypi.python.org/simple/nltk/
无法获取URL [需要更多声望以发布链接]:确认ssl证书时出现问题:
在查找nltk的下载链接时将跳过URL [需要更多声望以发布链接]/simple/nltk/
获取页面[需要更多声望以发布链接]/simple/
无法获取URL https://pypi.python. org/simple/:确认ssl证书时出现问题:
在查找nltk的下载链接时将跳过URL [需要更多声望以发布链接]
无法获取基本URL [需要更多声望以发布链接]的索引
查找nltk的版本URL:
* [需要更多声望以发布链接]
获取页面[需要更多声望以发布链接]
无法获取URL [需要更多声望以发布链接]:确认ssl证书时出现问题:
在查找nltk的下载链接时将跳过URL [需要更多声望以发布链接]
找不到满足nltk需求的任何下载
异常信息:
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('找不到满足%s的任何分发' % req)
DistributionNotFound: 找不到满足nltk需求的任何下载
--easy_install只安装了部分库,而且代码在尝试运行时很快遇到了问题。
对此问题有什么想法吗?我真的很希望能得到一些关于如何使pip工作或者暂时解决此问题的反馈。
pip安装几乎任何库时出现问题的原因是pip版本过低,解决方法是升级pip版本。以下是具体步骤:
1. 下载正确版本的pip:https://pypi.org/simple/pip/
2. 使用以下命令安装pip:sudo python3 pip-9.0.3.tar.gz
3. 或者可以使用以下命令安装最新版本的pip:curl https://bootstrap.pypa.io/get-pip.py | python
4. 如果conda/anaconda是导致无法使用brew或pip更新pip的原因,则可以使用conda install pip
在conda环境中安装/升级pip。如果已经安装了conda,则应在根/基本conda环境中执行此操作。
5. 可以尝试直接安装pip:curl https://bootstrap.pypa.io/get-pip.py | python
以上方法也适用于Python 2版本。
这个问题的发生与pip的TLS协议更新有关,具体细节可以参考这个答案。
感谢原帖的回答者提供的解决方案,并且已经确认这些方法也适用于Python 2版本。
如果无法使用brew或pip更新pip,可以尝试使用conda install pip命令在conda环境中安装/升级pip。如果已经安装了conda,则应在根/基本conda环境中执行此操作。
如果无法使用brew或pip更新pip,则可以使用conda install pip命令在conda环境中安装/升级pip。如果已经安装了conda,则应在根/基本conda环境中执行此操作。
如果无法使用brew或pip更新pip,则可以使用conda install pip命令在conda环境中安装/升级pip。如果已经安装了conda,则应在根/基本conda环境中执行此操作。
如果无法使用brew或pip更新pip,则可以使用conda install pip命令在conda环境中安装/升级pip。如果已经安装了conda,则应在根/基本conda环境中执行此操作。
问题的出现原因是SSL证书验证失败,解决方法是指定pypi主机为可信任主机,或者升级pip版本,或者升级解释器版本。具体的解决方法如下:
1. 指定pypi主机为可信任主机:
pip install --trusted-host pypi.python.org pytest-xdist pip install --trusted-host pypi.python.org --upgrade pip
2. 升级解释器版本:
因为TLSV1_ALERT_PROTOCOL_VERSION错误与可信任主机/验证问题无关,而是因为解释器不支持TLS v1.2,需要升级解释器版本。
3. 升级pip版本:
有些情况下,升级pip版本即可解决问题。如果上述错误阻止了pip的升级,可以使用get-pip.py进行安装。例如,在Linux系统上可以执行以下命令:
curl https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py
注意:以上方法在不同的操作系统和环境中可能有所不同,具体操作请参考相关文档。