导入pycurl时出现ImportError错误

3

每当尝试导入pycurl时,我都会收到一个回溯(traceback),如果您能帮忙解决这个问题,将不胜感激。

Python的版本为2.7。

>>> import pycurl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/local/lib/libcurl.so.4: symbol SSLv2_client_method, version     OPENSSL_1.0.0 not defined in file libssl.so.1.0.0 with link time reference

OpenSSL 版本为 1.0.1。 - Mozirra
1
看起来 OpenSSL 配置时使用了 no-ssl2。重新构建 OpenSSL 库时,不要使用 no-ssl2 选项(不推荐);或者重新编译 PyCurl,以适应您正在使用的 OpenSSL 版本。确保告诉 PyCurl SSLv2 不可用。(如果 PyCurl 聪明的话,它会在 <openssl/opensslconf.h> 中看到 OPENSSL_NO_SSL2 已定义)。 - jww
1
忘了提一下...你可以使用nm -D --defined-only /usr/lib/libssl.so.1.0.0 | grep -i SSLv2_client_method来检查符号。它应该会显示一个大写的T,这意味着它在文本段中被定义并且被导出。但是实际上,你不想要任何SSLv2(或SSLv3)的东西...最好修复PyCurl。 - jww
1个回答

2

在我的Debian系统上,以下操作有帮助:

apt-get install -y libssl-dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接