2015-10-08 3 views
37
pip install m2crypto 

Формирует следующий вывод:Проблема установки M2Crypto с пип на OS X/MacOS

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 

ответ

131

Мне нужен был более удобный способ без установки вручную и с использованием только Homebrew (который также не связывает openssl по умолчанию). Также требовалось использование pip. Это, похоже, работает с новейшим m2crypto 0.22.5. Я также тестировал его один раз с m2crypto 0.22.3 и, похоже, тоже работал. Версия OpenSSL здесь 1.0.2d:

brew install openssl 
brew install swig 

Наконец установить M2Crypto на MacOS в вашем Bash. Это длинная команда, но она изменяет Swig и лязг переменные окружения только в pip install так что 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 

кстати. последняя команда также работает, если вы используете, например, Требования.txt.

Update:
Дополнительных также команда для рыбы оболочки пользователей ...

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 
+1

+1 На самом деле, как этот метод, я мог бы использовать его с помощью сценария установки рекурсивного зависимостей, и он работал как шарм. – aorcsik

+0

Спасибо за это, работал безупречно. –

+1

Это замечательно - используется для установки без проблем, огромное спасибо! – ghukill

4

Я только что прошел через много боли получать это работая в Эль-Капитане. Вот то, что я должен был сделать:

Установите 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 

AFAIK он установлен ... Тем не менее, мне все равно нужно провести некоторое тестирование.

+0

Кроме того, это репо, кажется, быть более активными: https: // gitlab. com/m2crypto/m2crypto.git Я думаю, что попробую установить эту версию. – joebarbere

+0

Я смог использовать hjjiang ответ сверху с OpenSSL 1.0.2e – domoarrigato

+2

'python setup.py build build_ext --openssl =/usr/local/opt/openssl' ' sudo python setup.py install build_ext --openssl =/usr/local/opt/openssl' работает для меня –

9

благодаря therealmarv ENV флагам я смог получить эту работу с версией MacPorts из OpenSSL/глотки, это то, что я сделал:

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

затем использовать therealmarv линии, но вместо «$ (варева --prefix OpenSSL)» с реж из MacPorts, который должен быть «/ Opt/местный»

sudo env LDFLAGS="-L/opt/local/lib" \ 
CFLAGS="-I/opt/local/include" \ 
SWIG_FEATURES="-cpperraswarn -includeall -I/opt/local/include" \ 
pip install M2Crypto 
+0

подтвердил, что это сработало для меня - спасибо! – domoarrigato

-10

Sudo APT-получить установку питона-M2Crypto

+1

Вопрос помечен как 'osx-elcapitan', где' apt-get', скорее всего, недоступен. – anderas

1

Это фиксированная моя проблема (Python 2.7):

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages 
Смежные вопросы