Подтвердить что ты не робот

Объект 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 недоступен. Это не позволяет urllib3 правильно настроить SSL и может вызвать некоторые SSL-соединения сбой. Для получения дополнительной информации см. https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.

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

Объект AttributeError: '_socketobject' не имеет атрибута 'Set_tlsext_host_name'

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

4b9b3361

Ответ 1

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

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

Ответ 2

Это позволило мне получить python, работающий на 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

Ответ 3

В RedHat:

sudo yum remove pyOpenSSL
sudo pip install pyopenssl