Я использую Python 2.7.3 и запросы. Я установил запросы через pip. Я считаю, что это последняя версия. Я работаю на Debian Wheezy.
Я использовал запросы много раз в прошлом и никогда не сталкивался с этой проблемой, но кажется, что при выполнении запросов https с Requests
я получаю InsecurePlatform
исключение.
Упоминается ошибка urllib3
, но я не установил это. Я установил его, чтобы проверить, решена ли ошибка, но это не так.
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3
/util/ssl_.py:79: 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.
Есть идеи, почему я это получаю? Я проверил документы, как указано в сообщении об ошибке, но документы говорят, чтобы импортировать urllib3 и либо отключить предупреждение, либо предоставить сертификат.
источник
sudo apt-get install python-dev libffi-dev libssl-dev
pip install 'requests[security]'
Запросы 2.6 вводили это предупреждение для пользователей python до 2.7.9 с доступными только стандартными модулями SSL.
Предполагая, что вы не можете перейти на более новую версию python, это установит более современные библиотеки Python SSL:
ОДНАКО, это может произойти сбой в некоторых системах без зависимости сборки для pyOpenSSL. В системах Debian для сборки pyOpenSSL должно быть достаточно запуска команды до команды pip, указанной выше:
источник
Я не использую это в производстве, только некоторые бегуны теста. И повторить документацию urllib3
Редактировать / Обновить:
Следующее также должно работать:
источник
Если вы не можете обновить версию Python до 2.7.9 и хотите отключить предупреждения,
Вы можете понизить версию «запросов» до 2.5.3:
О версии: http://fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html
источник
На самом деле, вы можете попробовать это.
requests.post("https://www.google.com", verify=False)
Вы можете прочитать код для запросов.
"C:\Python27\Lib\site-packages\requests\sessions.py"
источник
Все приведенные здесь решения не помогли (я ограничен Python 2.6.6). Я нашел ответ в простом переключателе, чтобы перейти к пункту:
Это говорит pip, что все в порядке, чтобы получить модуль от pypi.python.org.
Для меня проблема заключается в том, что прокси-сервер моей компании за брандмауэром делает его похожим на вредоносный клиент для некоторых серверов. Ура безопасность.
Обновление: см. Ответ @Alex об изменениях в доменах PyPi и дополнительных
--trusted-host
возможностях, которые можно добавить. (Я бы скопировал / вставил сюда, но его ответ, так что +1 его)источник
Этот ответ не имеет отношения, но если вы хотите избавиться от предупреждения и получить следующее предупреждение от запросов:
InsecurePlatformWarning /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:79: 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.
Вы можете отключить его, добавив следующую строку в ваш код Python:
requests.packages.urllib3.disable_warnings()
источник
Я должен был пойти в
bash
(от ZSH) сначала. затемисправил проблему.
источник
Это стало для меня на Ubuntu 14.04 (с Python 2.7.6) на прошлой неделе после того, как я сделал ,
apt-get dist-upgrade
который включалlibssl1.1:amd64
вdeb.sury.org
.Поскольку я запускаю
certbot-auto renew
из задания cron, я также использую,--no-self-upgrade
чтобы сократить внеплановое обслуживание. Это, кажется, было источником проблемы.Чтобы исправить ошибку, все, что мне нужно было сделать, это стать пользователем root (с ключом
su
s--login
) и позволитьcertbot-auto
себе обновиться. То есть:вместо того, что обычно запускается из crontab root:
После этого перезапуски letsencrypt снова проходили нормально.
источник
Для меня нет работы, мне нужно обновить пип ....
Debian / Ubuntu
установить зависимости
обновить pip и установить пакеты
Если вы хотите удалить зависимости
источник
У меня просто была похожая проблема на сервере CentOS 5, где я установил python 2.7.12 в / usr / local поверх гораздо более старой версии python2.7. Обновление до CentOS 6 или 7 на данный момент недоступно на этом сервере.
Некоторые из модулей python 2.7 все еще существовали из более старой версии python, но pip не удалось обновить, поскольку более новый пакет криптографии не поддерживается пакетами CentOS 5.
В частности, «запросы установки pip [security]» не выполнялись, поскольку версия openssl на CentOS 5 была 0.9.8e, которая больше не поддерживается криптографией> 1.4.0.
Чтобы решить оригинальную проблему ОП, я сделал:
Это установленная криптография 1.3.4, которая работает с openssl-0.9.8e. Криптография 1.3.4 также достаточна для удовлетворения требования для следующей команды.
Эта команда теперь устанавливается, потому что она не пытается установить криптографию> 1.4.0.
Обратите внимание, что на Centos 5 мне также нужно было:
Разрешить криптографию строить
источник
Вот как это работает для меня на Python 3.6:
источник
Не устанавливайте pyOpenSSL, так как это скоро станет устаревшим. Текущий лучший подход
источник
если вы просто хотите остановить небезопасное предупреждение, например:
делать:
ключ, следующие не очень хороши в этом:
или
но вы должны знать, что это может привести к потенциальной угрозе безопасности .
источник
У меня была такая же проблема с
Mac
Pycharm Community Edition 2019.3
Python интерпретатор 3.6.
Обновление пипа с 20.0.2 у меня сработало.
Pycharm --> Preferences --> Project Interpreter --> click on pip --> specify version 20.0.2 --> Install package
источник