Установите Pycurl после обновления Mac до High Sierra - ошибка SSL - PullRequest
0 голосов
/ 28 июня 2018

Я обновил свой mac до high sierra, и теперь я не могу установить pycurl. Ошибка с этим сообщением: Curl is configured to use SSL, but we have not been able to determine which SSL backend it is using. Please see PycURL documentation for how to specify the SSL backend manually.

Я искал в документации и в Интернете и нашел какое-то решение, которое не решило бы мою проблему. самый популярный это:

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl

здесь полная ошибка

enter image description here

1 Ответ

0 голосов
/ 08 июля 2018

Раствор похож на тот, который вы нашли работал для меня, когда выдается из моей virtualenv. Я использую Homebrew в качестве менеджера пакетов на MacOS High Sierra и Pipenv управлять своими зависимостями проекта и virtualenv. Ошибка возникла после добавления PyVimeo API библиотеки, которая имеет PycURL как зависимость, к моему проекту.

Генерируемые ошибки были, во-первых,

ЦСИ / pycurl.c: 137: 4: предупреждение: #warning «Libcurl был составлен с помощью SSL поддержка, но настроить не удалось определить, какая библиотека была использована; Таким образом, нет SSL-шифрования блокировки обратного вызова не будет установлено, что может привести к случайные вылеты на SSL запросов»[-Wcpp]

тогда

ImportError: pycurl: Libcurl ссылка времени SSL бэкенд (OpenSSL) является не отличается от времени компиляции Ssl бэкэндом (нет / прочее)

Как уже упоминалось в PycURL DOCS , решение было "сказать [PycURL-х] setup.py, что SSL бэкенд используется." Установка переменных окружения, рекомендуемые в выходе brew info openssl, в одиночку, не решить эту проблему.

Тогда я нашел тангенциально связанный GitHub выпуск комментария и попытался следующим внутри virtualenv моего проекта:

(env)$ pip uninstall pycurl
(env)$ pip install --upgrade pip
(env)$ export LDFLAGS=-L/usr/local/opt/openssl/lib
(env)$ export CPPFLAGS=-I/usr/local/opt/openssl/include
(env)$ export PYCURL_SSL_LIBRARY=openssl
(env)$ pip install pycurl

The install команда дала этот выход:

Сбор pycurl Использование закэшированное https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz Строительные колеса для собранных пакетов: pycurl Запуск setup.py bdist_wheel для pycurl ... сделано Хранится в каталоге: / Users / мне / Библиотека / кэша / пип / колесо / d2 / 85 / ае / ebf5ff0f1378a69d082b4863df492bf54c661bf6306a2bd Успешно построен pycurl tuspy 0.2.1 имеет требование pycurl == 7.43.0, но вы будете иметь pycurl 7.43.0.2, несовместимое. Установка Собранные пакеты: pycurl успешно установлен pycurl-7.43.0.2

Я заметил (несколько мелких?) tuspy ошибку и побрел дальше. На этот раз, мой сценарий работал без PycURL жалуется.

...