AttributeError: у объекта '_socketobject' нет атрибута 'set_tlsext_host_name'

В Python на сервере Ubuntu я пытаюсь получить requests библиотека для выполнения запросов https:

import requests
requests.post("https://example.com")

Сначала я получил следующее:

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: настоящий объект SSLContext недоступен. Это препятствует правильной настройке SSL в urllib3 и может привести к сбою некоторых SSL-соединений. Для получения дополнительной информации см. https://urllib3.readthedocs.org/en/latest/security.html.

После следования совету в этом вопросе: InsecurePlatformWarning: истинный объект SSLContext недоступен. Это препятствует правильной настройке SSL в urllib3, теперь я обновил свое предупреждение до следующей ошибки:

AttributeError: у объекта '_socketobject' нет атрибута 'set_tlsext_host_name'

Как это исправить?

3 ответа

Решение

Исправление для меня было следующее:

sudo apt-get purge python-openssl
sudo pip install pyopenssl

Это позволило мне заставить питона работать на Ubuntu 12.04.3 LTS.

sudo apt-get install python-dev python-pip build-essential libffi-dev
sudo -H pip install --upgrade pip setuptools && sudo -H pip install --upgrade pyopenssl

На RedHat:

sudo yum remove pyOpenSSL
sudo pip install pyopenssl
Другие вопросы по тегам