it-swarm.com.de

Probleme bei der Installation von m2crypto mit pip unter OS X / macOS

pip install m2crypto

Erzeugt die folgende Ausgabe:

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

Ich bin gelaufen:

brew install swig
46
user5275692

Ich wollte einen schöneren Weg, ohne manuell zu installieren und nur Homebrew zu verwenden (das standardmäßig auch keine Verbindung zu openssl herstellt). Auch die Verwendung von pip war Voraussetzung. Dies scheint mit der neuesten Version von m2crypto 0.22.5 zu funktionieren. Ich habe es auch mal mit m2crypto 0.22.3 getestet und scheint auch zu funktionieren. Die OpenSSL-Version hier ist 1.0.2d:

brew install openssl
brew install swig

Installieren Sie schließlich m2crypto unter macOS in Ihrem Bash. Es ist ein langer Befehl, aber er ändert die Umgebungsvariablen SWIG und clang nur während pip install damit m2crypto alle OpenSSL-Anforderungen erhält:

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. Der letzte Befehl funktioniert auch, wenn Sie z. a requirements.txt.

Aktualisieren:
Zusätzlich auch der Befehl für fish Shell Benutzer ...

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

dank therealmarv env flags war ich in der lage dies mit der macports version von openssl/swig zum laufen zu bringen, dies ist was ich getan habe:

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

benutze dann die RealMarv-Zeilen, ersetze aber "$ (brew --prefix openssl)" durch das Verzeichnis von Macports, das "/ opt/local" sein sollte

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

Ich hatte gerade große Schmerzen, als ich das in El Capitan zum Laufen brachte. Folgendes musste ich tun:

Installieren Sie OpenSSL (Sie müssen eine ältere Version verwenden, sonst kompiliert m2crypto nicht)

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 installieren

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 ist installiert ... Ich muss allerdings noch einige Tests durchführen.

4
joebarbere

Habe genau gleiches Problem auf Ubuntu 18.04 LTS, während versucht, es auszuführen

pip install M2Crypto==0.24.0

Habe folgendes getan, um es loszuwerden:

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

Dies hat mein Problem behoben (Python 2.7):

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