在 Amazon Elastic Beanstalk 上安装 Anaconda 以在 Django 应用程序中使用
Posted
技术标签:
【中文标题】在 Amazon Elastic Beanstalk 上安装 Anaconda 以在 Django 应用程序中使用【英文标题】:Installing Anaconda on Amazon Elastic Beanstalk to use in Django application 【发布时间】:2020-11-02 01:34:35 【问题描述】:我有一个部署到 Amazon Elastic Beanstalk 的 Django 应用程序。我必须安装 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 文件的延续时,它再次失败,我得到command failed
。
在手动中,所有命令都可以工作,但它们在我的 .config 文件中不起作用。
如何解决此问题并使用 conda 安装软件包?
【问题讨论】:
【参考方案1】:我尝试在我的沙盒帐户上复制该问题,并在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日志文件供您参考(为简单起见已缩短):
/var/log/cfn-init-cmd.log【讨论】:
根据我的日志,由于 05_conda_install 命令,我的构建失败。 @AslıKök 您使用的是哪个环境?和我用来验证的一样吗?正如您在我的日志中看到的,安装 anaconda 没有问题。错误信息与我的代码相同吗? 天哪,部署成功。现在我可以将 pythonocc-core 直接导入到我的 .py 文件中了吗? 哦,我解决了这个问题,它是关于磁盘空间的。谢谢,您的命令有效! @AslıKök 没问题。很高兴它成功了。感谢您让我知道。以上是关于在 Amazon Elastic Beanstalk 上安装 Anaconda 以在 Django 应用程序中使用的主要内容,如果未能解决你的问题,请参考以下文章
Django 在 Amazon Elastic Beanstalk 上的迁移命令被杀死
Amazon Elastic Beanstalk 在运行任何命令时不断询问凭据
在 Amazon Elastic Beanstalk 上安装 Anaconda
Elastic Beanstalk 是不是支持 Amazon 的 Aurora DB?
在 Amazon Elastic Compute Cloud (Amazon EC2) 上托管 twitter 流 api 的优缺点是啥