Установите python модули на Elasti c Beanstalk с Conda - PullRequest
1 голос
/ 21 апреля 2020

Проблема

Я пытаюсь установить python пакетов с C зависимостями от AWS Elasti c Beanstalk (а именно: fbprophet и xgboost )

Elasti c Beanstalk python по умолчанию устанавливает пакеты из requirements.txt с pip или pipenv на Amazon Linux 2

Однако, fbprophet и xgboost есть зависимости в C, которые необходимо скомпилировать перед установкой с pip. conda поставляется с предварительно скомпилированными библиотеками, поэтому их гораздо проще установить с conda.


Что я пробовал

Вот моя попытка установить их с conda, используя файл .config в папке .ebextensions:

commands:
  00_download_conda:
    command: 'wget http://repo.continuum.io/archive/Anaconda3-2020.02-Linux-x86_64.sh'
    test: test ! -d /anaconda
  01_install_conda:
    command: 'bash Anaconda3-2020.02-Linux-x86_64.sh -b -f -p /anaconda'
    test: test ! -d /anaconda
  02_reload_bash: 
    command: 'source ~/.bashrc'
  03_create_home:
    command: 'mkdir -p /home/wsgi'
  04_conda_env:
    command: 'conda env create -f environment.yml'
  05_activate_env:
    command: 'conda activate demo_forecast'

Однако это не работает и выдает эту ошибку:

[2020-04-21T18:18:22.285Z] INFO  [3699]  - [Application update app-8acc-200421_201612@4/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_0_test_empty_dash/Command 03_conda_env] : Activity execution failed, because: /bin/sh: conda: command not found
   (ElasticBeanstalk::ExternalInvocationError)


[2020-04-21T18:18:22.285Z] INFO  [3699]  - [Application update app-8acc-200421_201612@4/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_0_test_empty_dash/Command 03_conda_env] : Activity failed.

Таким образом, кажется, что .bashrc не создает conda псевдоним

Я знаю о этот вопрос и ответ на него , однако он немного устарел и не дает достаточно подробностей для моего случая, потому что он не go завершает установку пакетов с использованием conda.

Другим способом будет попытка установить и скомпилировать зависимости C до pip установки требования, но пока я не добился успеха.

Спасибо за помощь!

...