Я использую Amazon Elastic Beanstalk для развертывания примера приложения 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
в виртуальной среде.
Итак, у меня две проблемы:
scipy
в мою виртуальную среду, которая не требует, чтобы я комментировал выборочные требования из моих requirements.txt
файл?Перед развертыванием приложения следует упаковать его (zip). Этот пакет должен включать все, что нужно вашему приложению, чтобы вам не приходилось предварительно устанавливать модуль при развертывании.