Ошибка установки M2Crypto на Amazon Beanstalk

Я пытаюсь установить пакет Python «M2Crypto» через файл requirements.txt и получаю следующее сообщение об ошибке:

/usr/include/openssl/opensslconf.h:36: Ошибка: CPP #error ""Этот пакет openssl-devel не работает с вашей архитектурой?"". Используйте параметр -cpperraswarn для продолжения обработки swig.

ошибка: команда 'swig' не удалась со статусом выхода 1

я пытался пройти

option_name: значение SWIG_FEATURES: "-cpperraswarn -includeall -I/usr/include/openssl"

Но ошибка сохраняется. Любая идея?


person amertkara    schedule 12.02.2015    source источник
comment
Возможно, этот вопрос поможет вам stackoverflow.com/questions/7772965/   -  person HavelTheGreat    schedule 12.02.2015
comment
@Elizion Спасибо, я не знаю, как заставить ./fedora_setup.sh build и ./fedora_setup.sh install работать с экземпляром Beanstalk. Если бы я мог знать, где абсолютный путь к virtualenv, возможно, я мог бы попробовать это.   -  person amertkara    schedule 12.02.2015


Ответы (2)


Я нашел решение, позволяющее установить M2Crypto на Beanstalk, но это немного хак, и вы несете ответственность за то, чтобы убедиться, что оно подходит для производственной среды. Я исключил M2Crypto из своего проекта, потому что эта проблема нелепа, попробуйте pycrypto, если можете.

На основе (я добавил только python setup.py test):

#!/bin/bash
python -c "import M2Crypto" 2> /dev/null
if [ "$?" == 1 ]
then
    cd /tmp/ 
    pip install -d . --use-mirrors M2Crypto==0.21.1
    tar xvfz M2Crypto-0.21.1.tar.gz
    cd M2Crypto-0.21.1
    ./fedora_setup.sh build
    ./fedora_setup.sh install
    python setup.py test
fi`

В файле конфигурации среды

commands:
    m2crypto:
        command: scripts/m2crypto.sh
        ignoreErrors: True
        test: echo '! python -c "import M2Crypto"' | bash

ignoreErrors НЕ является хорошей идеей, но я просто использовал ее, чтобы проверить, действительно ли пакет устанавливается и выглядит ли он так.

Опять же, может показаться, что пакет установлен, но я не уверен, потому что удаление ignoreErrors приводит к сбою. Поэтому я не буду отмечать это как принятый ответ, но это было слишком, чтобы быть комментарием.

person amertkara    schedule 13.02.2015

У меня работает следующий файл конфигурации (помещенный в .ebextensions):

packages:
    yum:
        swig: []

container_commands:
    01_m2crypto:
        command: 'SWIG_FEATURES="-cpperraswarn -includeall -D`uname -m` -I/usr/include/openssl" pip install M2Crypto==0.21.1'

Убедитесь, что вы не указали M2Crypto в своем requirements.txt, поскольку Elastic Beanstalk попытается установить все зависимости перед запуском команд контейнера.

person Community    schedule 03.04.2015
comment
У меня действительно нет средств, чтобы проверить это, но если кто-то еще одобрит, я могу принять ответ. - person amertkara; 20.07.2015