Установка scipy в virtualenv на Elastic Beanstalk

Я использую Elastic Beanstalk от Amazon для развертывания примера приложения Flask. Я могу отлично развернуть простое приложение "Hello World", но сейчас я пытаюсь развернуть приложение с scipy как требование.

Я включил необходимые пакеты в мой .ebextensions/:

packages:
    yum:
        gcc-c++: []
        gcc-gfortran: []
        python27-devel: []
        atlas-sse3-devel: []
        lapack-devel: []
        libpng-devel: []
        zlib-devel: []
        postgresql93-devel: []

Если я уйду scipy а также numpy в requirements.txt файл, развертывание не удается, потому что numpy должен быть установлен до scipy,

Я могу это исправить, комментируя scipy от моего requirements.txtи добавив container_commands раздел к моему .ebextensions:

container_commands:
    01_install_scipy:
        command: "pip install scipy"

Мне не нравится этот подход, потому что я хочу, чтобы все мои требования жили в моем requirements.txt файл для целей разработки. Выборочно комментируя требования пипсов из requirements.txt файл чувствует себя неправильно и может стать сложным, если у меня есть куча других библиотек, которые зависят от scipy,

Кроме того, сборка scipy из источника занимает очень много времени, особенно в относительно небольших экземплярах EC2. Я пытался установить с помощью yum, но это приводит к использованию старых версий scipy и не имея scipy в виртуальной среде.

Итак, у меня есть две проблемы:

  1. needs.txt: есть ли способ установить scipy в моей виртуальной среде, которая не требует, чтобы я закомментировал выборочные требования от моего requirements.txt файл?
  2. Скорость: есть ли способ предварительно скомпилировать scipy и сделать его доступным в виртуальной среде?

1 ответ

Вы должны упаковать свое приложение (zip) перед его развертыванием. Этот пакет должен включать все необходимые приложения, чтобы вам не нужно было предварительно устанавливать модуль при развертывании.

Другие вопросы по тегам