2012-05-11 44 views
4

我問了一個關於在Mint中安裝M2Crypto python庫的問題here。這個問題得到了成功的回答,我能夠構建和安裝M2Crypto。但是,我無法在Python中使用它。當我嘗試導入模塊時,出現以下錯誤:在Mint上安裝M2Crypto的問題:後續

>>> 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 

如果有人知道如何解決此錯誤,請告訴我。

回答

2

它看起來像是在M2Crypto 0.21.1中引入的一個bug,有一個patch here可以解決這個問題。

也許您可以嘗試安裝舊版本的M2Crypto(如0.20.1-1.1)或者使用patch命令手動應用修補程序。

+1

你能解釋一下如何安裝該補丁嗎?似乎沒有任何解釋。 – ewok

3

要展開上述答案:

這是M2Crypto 0.21.1的錯誤。這與SSLv2在許多平臺上被OpenSSL刪除的事實有關,因爲它太不安全,特別是Debian [1]和Ubuntu。

編譯期間未檢測到刪除。有一個廣泛可用的修補程序修復此問題。我將它併入了Github上的M2Crypto源代碼。

您可以使用畫中畫從倉庫裏,像這樣直接安裝:

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

對於那些誰想要檢查(多出版)的補丁修復此:b432d36

編輯:移動到另一個位置

15

兩年後,m2crypto0.21.1中的問題仍然存在,所以這裏是Ubuntu用戶的注意事項。如果你不使用virtualenv,你可以很容易地通過安裝Ubuntu的PPA m2crypto而不是PIP的修復:

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

好像問題被固定在PPA,而不是在項目的回購協議。至少它在Ubuntu 12.04中對我有用。

+1

這是我工作的唯一答案 – dg123

+0

感謝上帝,一個有效的答案。這應該是#1 – wordsforthewise

+0

謝謝,它仍然工作,即使在Ubuntu 16.04.2 LTS – SeyfSV