2015-10-08 78 views
37
pip install m2crypto 

生成以下的輸出:麻煩與OS PIP安裝m2crypto X/MacOS的

building 'M2Crypto.__m2crypto' extension 
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c 
swig -python -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/usr/include -I/usr/include/openssl -includeall -modern -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i 
SWIG/_m2crypto.i:30: Error: Unable to find 'openssl/opensslv.h' 
SWIG/_m2crypto.i:33: Error: Unable to find 'openssl/safestack.h' 
SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf.h' 
SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h' 
error: command 'swig' failed with exit status 1 

我已經運行:

brew install swig 

回答

131

我想要一個更好的方式,而不需要手動安裝,只使用Homebrew(默認情況下也不會鏈接openssl)。還需要使用pip。這似乎與最新的m2crypto 0.22.5一起工作。我還用m2crypto 0.22.3測試過一次,似乎也可以工作。這裏的OpenSSL的版本爲1.0.2d:

brew install openssl 
brew install swig 

猛砸最後安裝在MacOS m2crypto。這是一個很長的命令,但它僅在pip install改變痛飲和鏗鏘的環境變量,這樣m2crypto將得到所有的OpenSSL要求:

env LDFLAGS="-L$(brew --prefix openssl)/lib" \ 
CFLAGS="-I$(brew --prefix openssl)/include" \ 
SWIG_FEATURES="-cpperraswarn -includeall -I$(brew --prefix openssl)/include" \ 
pip install m2crypto 

BTW。如果您使用例如最後一個命令一個requirements.txt。

更新:
另外還爲魚貝用戶命令

env LDFLAGS="-L"(brew --prefix openssl)"/lib" \ 
CFLAGS="-I"(brew --prefix openssl)"/include" \ 
SWIG_FEATURES="-cpperraswarn -includeall -I"(brew --prefix openssl)"/include" \ 
pip install m2crypto 
+1

+1真的很喜歡這種方法,我可以在遞歸依賴安裝腳本中使用它,它的工作方式就像一個魅力一樣。 – aorcsik

+0

非常感謝,完美無瑕。 –

+1

這太棒了 - 用於安裝非常感謝,非常感謝! – ghukill

4

我剛剛經歷了很多痛苦的去得到這個在El Capitan工作。這是我必須做的:

安裝OpenSSL的(你要使用舊版本,m2crypto否則不會編譯)

curl -O https://www.openssl.org/source/openssl-0.9.8zg.tar.gz 
tar -xvzf openssl-0.9.8zg.tar.gz 
cd openssl-0.9.8zg 
./Configure --prefix=/usr/local darwin64-x86_64-cc 
make && make test 
sudo make install 

安裝m2crypto

git clone https://github.com/martinpaljak/M2Crypto.git  
cd M2Crypto 
python setup.py build build_ext --openssl=/usr/local 
sudo python setup.py install build_ext --openssl=/usr/local 

AFAIK它被安裝...我仍然必須做一些測試。

+0

此外,該回購似乎更加活躍:https://開頭gitlab。 com/m2crypto/m2crypto.git 我想我會嘗試安裝此版本。 – joebarbere

+0

我能夠使用hjjiang從上面的答案OpenSSL 1.0.2e – domoarrigato

+2

'python setup.py build build_ext --openssl =/usr/local/opt/openssl' 'sudo python setup。py安裝build_ext --openssl =/usr/local/opt/openssl' 適合我 –

9

感謝therealmarv ENV標誌我能得到這個與MacPorts的版本的OpenSSL /痛飲的工作,這是我做過什麼:

​​

然後用therealmarv線,但替換「$(BREW --prefix的OpenSSL)」從MacPorts的迪爾應該是「/選擇/本地」

sudo env LDFLAGS="-L/opt/local/lib" \ 
CFLAGS="-I/opt/local/include" \ 
SWIG_FEATURES="-cpperraswarn -includeall -I/opt/local/include" \ 
pip install M2Crypto 
+0

確認這對我有用 - 謝謝! – domoarrigato

-10

sudo易於得到安裝python-m2crypto

+1

這個問題被標記爲'osx-elcapitan',其中'apt-get'最有可能不可用。 – anderas

1

這個固定我的問題(Python 2.7版):

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages