django - 在 Amazon Elastic Beanstalk 上安装 Anaconda 以在 Django 应用程序中使用

标签 django amazon-web-services amazon-ec2 anaconda amazon-elastic-beanstalk

我有一个 Django 应用程序,已部署到 Amazon Elastic Beanstalk。我必须安装 anaconda 才能安装 pythonocc-core 包。我在 .ebextensions 文件夹中创建了一个 .config 文件,并在 wsgi.py 文件中添加了 anaconda 路径,如下所示,我已成功部署它。

.config文件:

commands:
  00_download_conda:
    command: 'wget https://repo.anaconda.com/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_create_home:
    command: 'mkdir -p /home/wsgi'
  03_conda_activate_installation:
    command: 'source ~/.bashrc'

wsgi.py:

sys.path.append('/anaconda/lib/python3.7/site-packages')

但是,当我将下面的 04_conda_install_pythonocc 命令添加到此 .config 文件的延续部分时,我收到 command failed 错误。

04_conda_install_pythonocc: 
command: 'conda install -c dlr-sc pythonocc-core=7.4.0'

我通过 ssh 进入实例进行检查。我看到/anaconda 文件夹已经出现。当我检查 conda --version 命令时,出现 -bash: conda: command not found 错误。

后来,我认为 PATH 可能有问题,我按如下方式编辑了 .config 文件,并成功部署了这个 .config 文件。

commands:
  00_download_conda:
    command: 'wget https://repo.anaconda.com/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_create_home:
    command: 'mkdir -p /home/wsgi'
  03_add_path:
    command: 'export PATH=$PATH:$HOME/anaconda/bin'
  04_conda_activate_installation:
    command: 'source ~/.bashrc'

但是,当我再次将 conda_install_pythonocc 命令添加到此编辑版本的 .config 文件的延续部分时,它再次失败,并且出现命令失败

手动时,所有命令都有效,但它们在我的 .config 文件中不起作用。

如何解决此问题并使用 conda 安装软件包?

最佳答案

我尝试在我的沙盒帐户上复制该问题,并在 64bit Amazon Linux 2 v3.0.3 running Python 3.7 上使用以下(简化的)配置文件成功安装了 conda :

.ebextensions/60_anaconda.config

commands:
  00_download_conda:
    command: 'wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh'
  01_install_conda:
    command: 'bash Anaconda3-2020.02-Linux-x86_64.sh -b -f -p /anaconda'
  05_conda_install: 
    command: '/anaconda/bin/conda install -y -c dlr-sc pythonocc-core=7.4.0'   

注意使用绝对路径 /anaconda/bin/conda-y不要求手动确认。我只验证了安装过程,而不是之后如何使用它(例如,不是如何在 python 应用程序中使用它)。因此,您可能需要根据您的需要进行调整。

还提供了显示安装成功的 EB 日志文件供您引用(为简单起见,已缩短):

关于django - 在 Amazon Elastic Beanstalk 上安装 Anaconda 以在 Django 应用程序中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62865974/

相关文章:

python - Nosetests 和 Coverage 不排除线路

mysql - Django ORM查询字段权重?

amazon-web-services - 限制Docker容器的磁盘IO-AWS EBS/EC2实例

amazon-web-services - AWS cfn-init 是否需要DescribeStackResource 的配置文件/角色?

amazon-ec2 - Cloudify:此用户没有默认 VPC

django - 在 Django 中按中间模型字段对 m2m 项目进行默认排序

javascript - Node lambda - 类型错误 : handler is not a function

powershell - 如何通过powershell获取CFT用户数据中正在创建的实例的实例ID?

r - 错误 : configuration failed for package ‘gifski’

sql - 用另一个数据库中的数据替换数据库的所有表,除了一个