Problème d'installation de m2crypto avec pip sur OS X / macOS

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
42
demandé sur therealmarv 2015-10-08 04:58:34

6 réponses

je voulais une façon plus agréable sans installer manuellement et en utilisant seulement Homebrew (qui ne lie pas non plus openssl par défaut). L'utilisation de pip était également une exigence. Cela semble fonctionner avec le plus récent m2crypto 0.22.5. Je l'ai également testé une fois avec m2crypto 0.22.3 et semble aussi fonctionner. La version D'OpenSSL ici est 1.0.2 d:

brew install openssl
brew install swig

enfin installer m2crypto sur macOS dans votre Bash . C'est une commande longue, mais elle change le SWIG et le clang. variables d'environnement seulement pendant pip install afin que m2crypto obtienne toutes les exigences 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 une des exigences.txt.

mise à jour:

En outre, la commande pour les utilisateurs coquille de poisson ...

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
140
répondu therealmarv 2017-06-10 13:19:22

grâce aux Drapeaux env thèalmarv j'ai pu faire fonctionner cette version macports d'openssl / swig, c'est ce que j'ai fait:

sudo port install openssl
sudo port install swig
sudo port install swig-python

alors utilisez les lignes therealmarv mais remplacez "$(brew --prefix openssl) "par le dir 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
9
répondu hjjiang 2015-10-17 07:12:10

j'ai eu beaucoup de mal à obtenir ce travail à 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 encore faire quelques tests.

4
répondu joebarbere 2015-10-11 03:51:12

cela a corrigé mon problème (Python 2.7):

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
1
répondu gmm 2017-05-30 14:56:12

a Obtenu exacte même question 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
1
répondu Adriana Bentes 2018-06-26 11:46:47

sudo apt-get install python-m2crypto

-10
répondu gaokun 2015-10-19 03:26:47