无法安装Python库

时间:2018-04-09 13:41:33

标签: python python-2.7 pip

我无法安装任何Python库。我正在使用python 2.7EN-NishantS:~ 8417$ pip install presto-python-client Collecting presto-python-client Could not find a version that satisfies the requirement presto-python-client (from versions: ) No matching distribution found for presto-python-client 。我收到以下错误:

pip install -vvv

在使用Collecting presto-python-client 1 location(s) to search for versions of presto-python-client: * https://pypi.python.org/simple/presto-python-client/ Getting page https://pypi.python.org/simple/presto-python-client/ Looking up "https://pypi.python.org/simple/presto-python-client/" in the cache No cache entry available Starting new HTTPS connection (1): pypi.python.org "GET /simple/presto-python-client/ HTTP/1.1" 403 170 Status code 403 not in [200, 203, 300, 301] Could not fetch URL https://pypi.python.org/simple/presto-python-client/: 403 Client Error: TLSv1.2+ is required for url: https://pypi.python.org/simple/presto-python-client/ - skipping Could not find a version that satisfies the requirement presto-python-client (from versions: ) Cleaning up... No matching distribution found for presto-python-client Exception information: Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 324, in run requirement_set.prepare_files(finder) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 380, in prepare_files ignore_dependencies=self.ignore_dependencies)) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 554, in _prepare_file require_hashes File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 278, in populate_link self.link = finder.find_requirement(self, upgrade) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/index.py", line 514, in find_requirement 'No matching distribution found for %s' % req DistributionNotFound: No matching distribution found for presto-python-client Looking up "https://pypi.python.org/pypi/pip/json" in the cache No cache entry available Starting new HTTPS connection (1): pypi.python.org "GET /pypi/pip/json HTTP/1.1" 403 170 Status code 403 not in [200, 203, 300, 301] There was an error checking the latest version of pip Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/utils/outdated.py", line 128, in pip_version_check resp.raise_for_status() File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/_vendor/requests/models.py", line 862, in raise_for_status raise HTTPError(http_error_msg, response=self) HTTPError: 403 Client Error: TLSv1.2+ is required for url: https://pypi.python.org/pypi/pip/json 时,我得到以下内容:

@Test
public void myTest() throws Exception {
    for (int i = 0; i<10; i++) {
        System.out.println(i + " " + LocalDate.now());
        System.out.println( TimeZone.getDefault().getDisplayName() );
        Thread.sleep(5000);
    }
}

7 个答案:

答案 0 :(得分:9)

在Mac上,您可以执行sudo curl https://bootstrap.pypa.io/get-pip.py | python

答案 1 :(得分:6)

我今天遇到了同样的问题,试图安装Django。

我刚刚重新安装了pip。从https://pip.pypa.io/en/stable/installing/获取get-pip.py,然后在virtualenv中运行python get-pip.py。这应该覆盖现有安装并更新SSL证书。

答案 2 :(得分:4)

macOS v10.12(Sierra)的同事刚刚通过运行brew install python@2然后覆盖以前的版本来解决这个问题。似乎Python网站上的版本没有捆绑正确的OpenSSL版本。

我认为有人也直接向Python提交了一个错误: OS X system OpenSSL deprecated - installer should build local libssl

答案 3 :(得分:4)

似乎这个问题在Stack Overflow上产生了很多关于使用pip install package-name未安装的各种软件包的问题。所以我想我会复制here的答案,以便更清楚地解决这个问题:

解决方案是将pip升级到最新版本。

但是,通过pip install --upgrade pip升级点数可能无法正确升级(即使不是这样也会显示它是最新的)。

所以(对于Mac用户),我们需要按如下方式升级pip:

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

发生了什么:

Python.org网站正在停止对TLS版本1.0和1.1的支持。这意味着Mac OS X version 10.12(Sierra)或更老版本将无法使用pip,除非他们按上述方式升级pip。

This帖子解释了它(感谢this Twitter post):

  

使用pip和PyPI的Mac用户:

     

如果您运行的是macOS / OS X 10.12或更早版本,那么您应该这样做   升级到最新的pip(9.0.3)以连接到Python Package   安全索引:

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

我们建议您在4月8日之前完成。

     

在macOS上的系统Python下运行时,Pip 9.0.3支持TLSv1.2&lt;   10.13。官方发行说明:https://pip.pypa.io/en/stable/news/

此外,Python status page

  

已完成 - 滚动限制已完成,TLSv1.0和TLSv1.1已被禁用。 4月11日,15:37 UTC

     

更新 - 滚动限制已升级为停电,TLSv1.0和TLSv1.1将始终以HTTP 403拒绝。   4月8日,15:49 UTC

最后,为了避免其他安装错误,请确保在执行上述操作后还升级setuptools:

pip install --upgrade setuptools

答案 4 :(得分:3)

您对PyPI的HTTP请求失败,出现HTTP 403(Forbidden)错误:

HTTPError: 403 Client Error: TLSv1.2+ is required for url:

https://pypi.python.org/pypi/pip/json

显然pip正试图通过HTTPS(加密且很好)访问PyPI,但是使用旧的(不安全的)SSL版本。你的系统似乎已经过时了。如果您更新软件包可能会有所帮助。

在基于Debian的系统上,我试试:

apt-get update && apt-get upgrade python-pip

在基于Red Hat Linux的系统上:

yum update python-pip # (or python2-pip, at least on Red Hat Linux 7)

在Mac上:

sudo easy_install -U pip

您还可以尝试单独更新openssl

答案 5 :(得分:2)

我使用macOS v10.13(High Sierra)成功升级了Python 3 sudo pip3 install --upgrade pip

要升级High Sierra版本2.7,我必须使用sudo pip2 install --upgrade pip

答案 6 :(得分:1)

我遇到了类似的问题。

问题出现在与系统Python安装相关的旧版OpenSSL中。

所以我从系统中卸载了所有Python发行版,并用brew install python@2安装了最后一个Python实现。

您可以像这样检查链接到Python的OpenSSL版本:

Python 2.7.14 (default, Mar 22 2018, 15:04:47)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.0.2o  27 Mar 2018'