pip install m2crypto
Génère la sortie suivante:
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
J'ai couru:
brew install swig
Je voulais une meilleure façon sans installer manuellement et en utilisant uniquement Homebrew (qui ne lie pas non plus openssl par défaut). L'utilisation de pip
était également obligatoire. Cela semble fonctionner avec le dernier m2crypto 0.22.5. Je l'ai également testé une fois avec m2crypto 0.22.3 et semble également fonctionner. La version d'OpenSSL ici est 1.0.2d:
brew install openssl
brew install swig
Enfin, installez m2crypto sur macOS dans votre Bash. C'est une commande longue mais elle ne modifie les variables d'environnement SWIG et clang que pendant pip install
pour que m2crypto obtienne toutes les exigences d'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. la dernière commande fonctionne également si vous utilisez par exemple un requirements.txt.
Mise à jour:
Supplémentaire aussi la commande pour fish Shell utilisateurs ...
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
grâce aux drapeaux env de therealmarv j'ai pu faire fonctionner cela avec la version macports d'openssl/swig, voici ce que j'ai fait:
Sudo port install openssl
Sudo port install swig
Sudo port install swig-python
puis utilisez les lignes therealmarv mais remplacez "$ (brew --prefix openssl)" par le répertoire de macports qui devrait être "/ 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
Je viens de traverser beaucoup de peine pour que cela fonctionne à El Capitan. Voici ce que je devais faire:
Installez OpenSSL (vous devez utiliser une ancienne version, m2crypto ne compilera pas autrement)
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
Installer 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 il est installé ... Je dois quand même faire quelques tests.
Got exact même problème sur Ubuntu 18.04 LTS, tout en essayant d'exécuter
pip install M2Crypto==0.24.0
A fait ce qui suit pour s'en débarrasser:
Sudo apt-get install swig
Sudo apt-get install libssl1.0-dev
Cela a résolu mon problème (Python 2.7):
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages