我有一个 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/