我将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
这是完整的错误
答案 0 :(得分:6)
一种解决方案,类似于您在我的virtualenv中发布的解决方案。我使用Homebrew作为macOS High Sierra上的软件包管理器,并使用Pipenv来管理我的项目依赖项和virtualenv。在将PycURL作为依赖项的PyVimeo API库添加到我的项目后,出现了错误。
首先,产生的错误是
src / pycurl.c:137:4:警告:#warning“ libcurl已使用SSL编译 支持,但是configure无法确定使用哪个库; 因此不会设置SSL加密锁定回调,这可能会导致 SSL请求随机崩溃” [-Wcpp]
然后
ImportError:pycurl:libcurl链接时SSL后端(openssl)是 与编译时ssl后端(无/其他)不同
As mentioned in the PycURL docs,解决方案是“告诉[PycURL's] setup.py使用了什么SSL后端”。仅设置brew info openssl
输出中推荐的环境变量并不能解决问题。
然后我找到了tangentially related Github issue comment,并在项目的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 pycurl的bdist_wheel ...完成存储在目录中: /用户/我/库/缓存/ 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。