web-dev-qa-db-ja.com

OS X / macOSでのpipを使用したm2cryptoのインストールに関する問題

pip install m2crypto

次の出力を生成します。

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

手動でインストールせず、Homebrewのみを使用する(デフォルトではopensslをリンクしない)より良い方法を望んでいました。 pipを使用することも要件でした。これは最新のm2crypto 0.22.5で動作するようです。また、m2crypto 0.22.3で1回テストしましたが、動作するようです。ここのOpenSSLバージョンは1.0.2dです。

brew install openssl
brew install swig

最後にBashでmacOSにm2cryptoをインストールします。長いコマンドですが、pip installの間にのみSWIGおよびclang環境変数を変更するため、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

ところで。最後のコマンドは、たとえばrequirements.txt。

更新:
追加コマンドfish Shell users ...

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

therealmarv envフラグのおかげで、これをopenssl/swigのmacportsバージョンで動作させることができました。これは私がやったことです:

Sudo port install openssl
Sudo port install swig
Sudo port install swig-python

次に、realmarv行を使用しますが、「$(brew --prefix openssl)」をmacportsの「/ opt/local」のディレクトリに置き換えます。

Sudo env LDFLAGS="-L/opt/local/lib" \
CFLAGS="-I/opt/local/include" \
SWIG_FEATURES="-cpperraswarn -includeall -I/opt/local/include" \
pip install M2Crypto
9
hjjiang

エルキャピタンでこれを機能させるのに苦労しました。ここに私がしなければならなかったことがあります:

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

私の知る限り、それはインストールされています...私はまだいくつかのテストを行う必要があります。

4
joebarbere

Ubuntu 18.04 LTSで正確に 同じ問題 を取得し、実行しようとした

pip install M2Crypto==0.24.0

それを取り除くために次のことをしました:

Sudo apt-get install swig
Sudo apt-get install libssl1.0-dev
3
Adriana Bentes

これは私の問題を修正しました(Python 2.7):

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