Не удалось установить библиотеки Python

Я не могу установить какие-либо библиотеки Python. Я использую pip 9.0.1 и python 2.7. Я получаю следующую ошибку:

EN-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

Ответ 1

На Mac вы можете сделать sudo curl https://bootstrap.pypa.io/get-pip.py | python

Ответ 2

Сегодня я столкнулся с такой же проблемой, пытаясь установить Django.

Я просто переустановил пипс. Получите get-pip.py с https://pip.pypa.io/en/stable/installing/ и просто запустите python get-pip.py в своем python get-pip.py каталоге. Это должно перезаписать существующую установку и обновить сертификат SSL.

Ответ 3

Сотрудник также на macOS v10.12 (Sierra) просто решил это, запустив brew install [email protected] а затем перезаписав предыдущую версию. Похоже, что версия с сайта Python не связывает правильную версию OpenSSL.

Я думаю, что кто-то также подал ошибку для этого прямо на Python: система OS X OpenSSL устарела - установщик должен построить локальный libssl

Ответ 4

Ваш HTTP-запрос на PyPI завершился с ошибкой HTTP 403 (Forbidden):

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

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

По-видимому, pip пытается получить доступ к PyPI через HTTPS (который зашифрован и прекрасен), но со старой (небезопасной) версией 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

Похоже, эта проблема порождает немало вопросов о переполнении стека о том, что различные пакеты не устанавливаются с использованием pip install package-name. Поэтому я решил переписать свой ответ отсюда для большей ясности в этом вопросе:

Решение состоит в том, чтобы обновить протокол до последней версии.

Тем не менее, обновление pip через pip install --upgrade pip может не обновить его правильно (оно покажет его актуально, даже если оно не будет).

Итак (для пользователей Mac, например), нам нужно обновить протокол следующим образом:

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

Что происходит:

Сайты Python.org останавливают поддержку версий TLS версии 1.0 и 1.1. Это означает, что Mac OS X версии 10.12 (Sierra) или старше не смогут использовать pip, если они не обновляют пипс, как указано выше.

Эта ветка объясняет это (благодаря этому сообщению в Twitter):

Пользователи Mac, использующие pip и PyPI:

Если вы используете macOS/OS X версии 10.12 или старше, вам необходимо обновиться до последнего пункта (9.0.3), чтобы безопасно подключиться к индексу пакета Python:

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

и мы рекомендуем вам это сделать до 8 апреля.

Pip 9.0.3 поддерживает TLSv1.2 при запуске в системе Python на macOS <10.13. Официальные заметки о выпуске: https://pip.pypa.io/en/stable/news/

Кроме того, страница статуса Python:

Завершено - свертывание календаря завершено, а TLSv1.0 и TLSv1.1 отключены. Апр 11, 15:37 UTC

Обновление. Сглаживание календаря было обновлено до отключения электроэнергии, TLSv1.0 и TLSv1.1 будут отклонены с HTTP 403 в любое время. 8 апреля, 15:49 UTC

Наконец, чтобы избежать других ошибок установки, убедитесь, что вы также обновили setuptools после выполнения вышеперечисленного:

pip install --upgrade setuptools

Ответ 6

Я успешно обновил Python 3 на macOS v10.13 (High Sierra), используя sudo pip3 install --upgrade pip.

Чтобы обновить версию High Sierra 2.7, мне пришлось использовать sudo pip2 install --upgrade pip.

Ответ 7

У меня была похожая проблема.

Проблема была в старой версии OpenSSL, связанной с установкой системы Python.

Поэтому я удалил все дистрибутивы Python из системы и установил последнюю реализацию Python с помощью brew install [email protected].

Вы можете проверить версию OpenSSL, связанную с Python, следующим образом:

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'