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
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
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
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.
cela a corrigé mon problème (Python 2.7):
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
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