Python PIP и InsecurePlatformWarning - PullRequest
       9

Python PIP и InsecurePlatformWarning

0 голосов
/ 26 сентября 2018

Я пытаюсь установить requests библиотеку для Python (2.6.6 на CentOS6) как

sudo pip install requests[security]

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

/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Collecting requests[security]
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

Iвсе системные библиотеки на месте

sudo yum install openssl-devel python-devel libffi-devel

и там все хорошо

, поэтому я попробовал

sudo pip install pyopenssl ndg-httpsclient pyasn1

и

sudo pip install --trusted-host pypi.python.org requests

иони также не работают.

Из-за какого-то старого кода мне нужно придерживаться Python 2.6

Есть идеи, что здесь не так и как это исправить?

PS

Я решил понизить pip, и выяснилось, что появились ошибки pip версии 6.1+.Мысли об этом?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Действительно, по состоянию на 2019 г. довольно много людей все еще сталкиваются с этой проблемой, поскольку они не могут обновить свой системный Python (и системный openssl) из-за различных ограничений.

Если вы хотите исправить InsecurePlatformWarning .. (Caused by SSLError .. SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'), следующее решение может помочь кому-то, использующему старый дистрибутив Linux:

Невозможно установить пакеты Python с помощью pip в Ubuntu Linux:InsecurePlatformWarning, SSLError, версия протокола оповещения tlsv1

Python 2.6.6 на CentOS6

В вашем конкретном случае последняя cryptography версия, официально поддерживающая Python2.6 была cryptography-2.1.1, хотя более новая версия могла бы работать.Первый криптографический пакет manylinux1 , включающий собственную привязку разделяемой библиотеки OpenSSL (1.1.0f) для Linux, независимо от того, что находится на вашей платформе, появился в версии cryptography-2.0.Последняя криптография, которая все еще официально поддерживала Centos 6.4, была версией 1.8.2, в то время как более новые версии официально поддерживали только CentOS 7.x: https://pypi.org/project/cryptography/#files

Обратите внимание, что версии криптографии <2.0 не имеют <code>manylinux1 ине поставлял openssl / ssllib с ними, полагаясь только на поставляемую системой (тогда они делали это только для других ОС, которые имели / имеют еще большие проблемы с SSL).Хотя cryptography-2.0 (manylinux1) все еще стоит попробовать, вам, вероятно, придется скомпилировать более новую версию openssl (1.0.1 - 1.1.0) локально в Centos 6.x, прежде чем компилировать криптографию 1.8.2, чтобы связать ее:
https://cryptography.io/en/latest/installation/#using-your-own-openssl-on-linux
https://cryptography.io/en/latest/installation/#rhel-centos

Также есть возможность создать свои собственные статически связанные колеса, которые будут работать на ваших собственных системах:
https://cryptography.io/en/latest/installation/#static-wheels

Тем не менее,

, если все, что вам нужно, это просто установить requests lib (без решения пресловутого SSLError), особенно в Python 2.6.6 наCentOS6, и вам не понадобится поддержка протокола TLS 1.2 от requests, вы можете просто использовать репозиторий Centos для этого:

$ yum search requests
$ sudo yum install python26-requests

илиВы можете получить и установить requests таким же образом, как и в вышеупомянутом решении , с колес или с tar.gz, загруженным с: https://pypi.org/project/requests/

Обратите внимание, последняя версияrequests в PyPI зависит от следующих пакетов Python: urllib3, idna, chardet, certifi

К счастью, эти четыре не имеют других зависимостей и могут быть получены напрямую из PyPI, таким же образом - раздел «Загрузка файлов» в PyPI:
https://pypi.org/project/urllib3/
https://pypi.org/project/idna/
https://pypi.org/project/chardet/
https://pypi.org/project/certifi/

Вы можете загрузить и попробовать установить их последние версии или использовать раздел «История выпусков», чтобы найти более старые версии, в зависимости отна ваш вариант использования и системные требования.

Обратите внимание, что в настоящее время многим веб-серверам (включая PyPI) требуется поддержка TLS 1.2, как в клиентской, так и в серверной части, для установления HTTPS-соединения, поэтому, если вам понадобятся соединения такого типа, requests не будетработать без исправления ошибки SSLE, как описано выше (или путем компиляции более нового Python 2.7.9+ против OpenSSL версии 1.0.2+, который также должен быть скомпилирован в этом случае, перед компилирует новый Python, чтобы связать модуль ssl с ним).

0 голосов
/ 26 сентября 2018

Попробуйте:

запросы на установку sudo pip

[безопасный] не нужен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...