Установите Pycurl после обновления Mac до High Sierra — ошибка SSL

Я обновил свой 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

вот полная ошибка

введите здесь описание изображения


person Dany M    schedule 28.06.2018    source источник


Ответы (1)


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

Сгенерированные ошибки были, во-первых,

src/pycurl.c:137:4: предупреждение: #warning "libcurl была скомпилирована с поддержкой SSL, но configure не смогла определить, какая библиотека использовалась; таким образом, не будут установлены обратные вызовы криптоблокировки SSL, что может вызвать случайные сбои при запросах SSL "[-Wcpp]

тогда,

ImportError: pycurl: бэкэнд libcurl link-time ssl (openssl) отличается от бэкэнда ssl во время компиляции (нет/другое)

Как упоминалось в документации по PycURL, решение состояло в том, чтобы "сообщить программе установки [PycURL] .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

Команда install дала следующий вывод:

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

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

person nootrope    schedule 07.07.2018
comment
Спасибо спас мой день!. - person rootturk; 16.02.2019