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