在Mint上安装M2Crypto的问题:后续

我在这里问了一个关于在Mint中安装M2Crypto python库的问题。 这个问题被成功回答,我能够build立和安装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 

如果有人知道如何解决这个错误,请让我知道。

它看起来像是在M2Crypto 0.21.1中引入的一个bug,这里有一个补丁来纠正这个问题。

也许你可以尝试安装一个老版本的M2Crypto(比如0.20.1-1.1)或者用patch命令手动应用这个补丁 。

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

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

似乎这个问题已经在PPA中解决了,但是在项目的回购中却没有解决。 至少它在Ubuntu 12.04中为我工作。

为了扩大上面的答案:

这是M2Crypto 0.21.1中的一个错误。 这与SSLv2在许多平台上被OpenSSL删除的事实有关,因为它太不安全,特别是Debian和Ubuntu。

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

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

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

对于那些想要检查修复了这个(很多已发布的)修补程序的人: b432d36

编辑:移动到另一个位置