Curl 配置为使用 SSL,但我们无法确定它使用的是哪个 SSL 后端



当我执行pip install thumbor时,出现以下错误:

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/t9/***********************/T/pip-install-knrabyuy/pycurl/setup.py", line 913, in <module>
ext = get_extension(sys.argv, split_extension_source=split_extension_source)
File "/private/var/folders/t9/***********************/T/pip-install-knrabyuy/pycurl/setup.py", line 582, in get_extension
ext_config = ExtensionConfiguration(argv)
File "/private/var/folders/t9/***********************/T/pip-install-knrabyuy/pycurl/setup.py", line 99, in __init__
self.configure()
File "/private/var/folders/t9/***********************/T/pip-install-knrabyuy/pycurl/setup.py", line 316, in configure_unix
specify the SSL backend manually.''')
__main__.ConfigurationError: 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.

我已经尝试了brew install curl(成功(,但是当我执行pip install thumbor时我遇到了同样的错误。

知道为什么吗?

这似乎是 pycurl 安装错误。

在 centos 上安装时,请尝试以下操作:

export PYCURL_SSL_LIBRARY=openssl

如果您在macos上安装,请尝试以下操作:

export PYCURL_SSL_LIBRARY=openssl
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include

然后运行pip install pycurl

我在部署到 Beanstalk 时收到此错误,因为我需要用于 Celery 的 pycurl。虽然在许多讨论中人们推荐不同的 SSL 选项,但我的解决方案是不使用这些选项中的任何一个。用于部署的 Python 配置文件如下所示:

packages:
yum:
git: []
postgresql93-devel: []
libcurl-devel: []
libjpeg-turbo-devel: []
commands:
01_download_pip3:
command: 'curl -O https://bootstrap.pypa.io/get-pip.py'
02_install_pip3:
command: 'python3 get-pip.py'
03_pycurl_uninstall:
command: '/usr/bin/yes | sudo /opt/python/run/venv/bin/pip3 uninstall pycurl'
04_pycurl_reinstall:
command: 'sudo /opt/python/run/venv/bin/pip3 install pycurl'

我没有在 Beanstalk 的软件配置中设置任何环境变量。

在MacOS Mojave上,这对我有用:

export PYCURL_SSL_LIBRARY=openssl
export LDFLAGS=-L/usr/local/opt/openssl/lib;export CPPFLAGS=-I/usr/local/opt/openssl/include;pip3 install pycurl --compile --no-cache-dir

我无法通过Software Collections中的Python 3.6克服此错误,因此我从同一存储库安装了Python 3.5。

然后我安装了 Pycurl:

sudo yum install sclo-python35-python-pycurl

效果很好。我使用 3.5 的原因是 3.6 没有类似的包。因此,您可能想尝试在包管理器上查找您正在使用的版本的 Pycurl,并以这种方式安装它。

最新更新