早期版本的 M2Crypto 似乎存在回归错误。
将M2Crypto 的源代码 放入您的 virtualenv 后,您可以尝试使用下面的差异代码对其进行修补。
您可以通过下载源代码来完成此操作,并通过以下方式解压:
tar -xzf M2Crypto-0.21.1.tar.gz
这应该创建M2Crypto-0.21.1
将包含该目录的SWIG
目录
在SWIG
你会发现_ssl.i
,这是要修补的文件。在同一目录中创建一个名为_ssl.i.patch
例如使用nano编辑器的文件,并将下面列出的完整差异代码粘贴到其中。
接下来发出patch _ssl.i _ssl.i.patch
将补丁合并到代码中的命令。(之后,您可以根据需要删除补丁文件。)
最后发出命令:
python setup.py build
其次是:
python setup.py install
手动安装。
差异代码:
--- SWIG/_ssl.i 2011-01-15 20:10:06.000000000 +0100
+++ SWIG/_ssl.i 2012-06-17 17:39:05.292769292 +0200
@@ -48,8 +48,10 @@
%rename(ssl_get_alert_desc_v) SSL_alert_desc_string_long;
extern const char *SSL_alert_desc_string_long(int);
+#ifndef OPENSSL_NO_SSL2
%rename(sslv2_method) SSLv2_method;
extern SSL_METHOD *SSLv2_method(void);
+#endif
%rename(sslv3_method) SSLv3_method;
extern SSL_METHOD *SSLv3_method(void);
%rename(sslv23_method) SSLv23_method;