在Mint上安装M2Crypto的问题:跟进

时间:2012-05-11 14:15:56

标签: python linux ssl m2crypto mint

我问了一个关于在Mint中安装M2Crypto python库的问题here。这个问题得到了成功解答,我能够构建和安装M2Crypto。但是,我无法在Python中使用它。当我尝试导入模块时,出现以下错误:

>>> import M2Crypto
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/M2Crypto/__init__.py", line 22, in <module>
    import __m2crypto
ImportError: /usr/local/lib/python2.7/dist-packages/M2Crypto/__m2crypto.so: undefined symbol: SSLv2_method

如果有人知道如何解决此错误,请告知我们。

3 个答案:

答案 0 :(得分:16)

两年后,m2crypto0.21.1中的问题仍然存在,所以这里是Ubuntu用户的注释。如果您没有使用virtualenv,可以通过从Ubuntu PPA安装m2crypto而不是pip来轻松修复它:

sudo pip uninstall m2crypto 
sudo apt-get install python-m2crypto

似乎问题在PPA中已修复,但在项目的回购中没有。至少它在Ubuntu 12.04上对我有用。

答案 1 :(得分:3)

扩展上述答案:

这是M2Crypto 0.21.1中的错误。这与SSLv2在许多平台上从OpenSSL中删除的事实有关,因为它过于不安全,特别是Debian [1]和Ubuntu。

在编译期间未检测到删除。有一个广泛可用的补丁修复了这个问题。我将其合并到Github上的M2Crypto源代码中。

您可以使用pip直接从存储库安装,如下所示:

pip install -e git+https://github.com/Hypernode/m2crypto#egg=M2Crypto

对于那些想要检查修复此内容的(已发布的)修补程序的人:b432d36

编辑:移动到其他位置

答案 2 :(得分:2)

看起来它是M2Crypto 0.21.1中引入的一个错误,有patch here可以解决问题。

也许您可以尝试安装旧版本的M2Crypto(如0.20.1-1.1)或使用patch命令手动应用补丁。