Вопрос-Ответ

'pip install' fails for every package ("Could not find a version that satisfies the requirement") [duplicate]

ошибка 'pip install' для каждого пакета ("Не удалось найти версию, удовлетворяющую требованию")

pip install <package name> у меня сбой для каждого пакета. Это то, что я получаю:

Could not find a version that satisfies the requirement <package-name
(from versions: )
No matching distribution found for <package-name>

Я видел похожие вопросы по Stack Overflow, но, похоже, они не полностью связаны с этим.

Кроме того, этот пост предполагает, что это может произойти, если PyPI отключен или мой IP-адрес занесен в черный список. Похоже, что оба варианта неверны для моего случая.

pip отображается в актуальном состоянии при запуске pip install --upgrade pip.

Переведено автоматически
Ответ 1

Обновите pip следующим образом:

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

Примечание: Возможно, вам потребуется использовать sudo python вышеописанное, если не в виртуальной среде.

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

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

(Обратите внимание, что обновление pip через pip install --upgrade pip также не приведет к его правильному обновлению. Это проблема курицы и яйца)

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


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


Если вы используете macOS / OS X версии 10.12 или старше, вам следует обновить до последней версии pip (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
Ответ 2

Поддержка PyPI TLS 1.0 и 1.1 была прекращена. Если ваша система не использует более свежую версию, это может объяснить вашу ошибку.

Не могли бы вы попробовать переустановить pip в масштабах всей системы, чтобы обновить системные зависимости до более новой версии TLS?

Похоже, это связано с невозможностью установки библиотек Python

Смотрите Ответ Доминика Бартона:


Очевидно, 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 отдельно.


python pip