при установке pip возникла проблема с SSL в virtualenv из-за взаимодействия с python27

#python #ssl #pip #virtualenv

#python #ssl #pip #virtualenv

Вопрос:

TL; DR Пытается использовать установку pip в python27 venv и получил ошибку SSL-соединения.

Я очень новичок в разработке на Python. С появлением python 3 и всех проблем с совместимостью, которые он вызвал, я никогда не чувствовал себя настолько потерянным с таким количеством кодов python 2 и документации, активных вместе с документацией python 3.

Итак, я работаю с веб-приложением Python (на основе flask), которое должно быть запущено на python 2.7.

Я запускаю Windows 10 с VS Code.

Итак, я выполнил все шаги для создания папки venv в моем проекте с помощью cmd virtualenv -p "C:\Python27python.exe" venv

Когда я начинаю делать pip install -r requirements.txt

Я получаю следующую ошибку подключения.

c:userspathtoprojectvenvlibsite-packagespip_vendorurllib3utilssl_.py:354 : Предупреждение о снятии: был сделан запрос HTTPS, но расширение SNI (указание имени сервера) для TLS недоступно на этой платформе. Это может привести к тому, что сервер представит неверный сертификат TLS, что может привести к сбоям проверки. Вы можете перейти на более новую версию Python, чтобы решить эту проблему. Для получения дополнительной информации см.https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

InsecurePlatformWarning Повторная попытка (Повторная попытка (всего = 4, подключение = Нет, чтение = Нет, перенаправление = Нет, статус = Нет)) после разрыва соединения с помощью ‘SSLError (SSLError (1, ‘_ssl.c: 499: ошибка: 1407742E: процедуры SSL: SSL23_GET_SERVER_HELLO: версия протокола оповещения tlsv1′),)’: /simple/pip / c:userskenzho ~ 1 worksa ~ 1 7eleve ~ 1 venv lib site-packages pip_vendor urllib3 util ssl_.py: 150: Предупреждение о небезопасной платформе: настоящий объект SSLContext недоступен. Это не позволяет urllib3 правильно настроить SSL и может привести к сбою некоторых SSL-соединений. Вы можете перейти на более новую версию Python, чтобы решить эту проблему. Для получения дополнительной информации см.https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

Я попробовал следующие способы решения проблемы.

python -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org --index-url=https://pypi.org/simple/

Но, похоже, ни один из них не работает.

У кого-нибудь есть идеи?

Спасибо

Комментарии:

1. Какие версии Python и pip?

2. Python по умолчанию в моей системе равен 3.7. Virtualenv — Python 2.7. pip работает в virtualenv 19 на Python 2.7. спасибо

3. По-прежнему недостаточно информации. Что именно Python 2.7? Для pip подключения к PyPI Python должен быть не ниже 2.7.9, лучше 2.7.16.

4. Это Python 2.7.15. pip 19.0.3 из c:pathtovenvlibsite-packagespip (python 2.7)

Ответ №1:

Вам необходимо обновить свои пакеты Python SSL.

Вариант 1

Установка следующих пакетов исправит ошибки.

 pip install pyOpenSSL ndg-httpsclient pyasn1
  

Но это будет работать только для системной версии Python 2.7.6.
По какой-то причине попытка того же исправления с python в виртуальной среде завершается неудачей. В конечном итоге вы не сможете завершить обновление из-за ошибки SSL, которую вы пытаетесь исправить.

Вариант 2

Обновите свою версию python. Необходимые исправления были включены в Python 2.7.9. Подробности об ошибке и исправлении приведены в примечаниях к выпуску.