【问题标题】:Installing Anaconda on Amazon Elastic Beanstalk在 Amazon Elastic Beanstalk 上安装 Anaconda
【发布时间】:2014-09-15 06:47:04
【问题描述】:

我已将部署命令添加到我的 Elastic Beanstalk 部署中,该部署下载 Anaconda 安装程序,并将其安装到 /anaconda。一切顺利,但我似乎无法按照 Anaconda 安装页面的建议正确修改实例的 PATH 以包含 /anaconda/bin。如果我通过 SSH 连接到一个实例并手动添加它,一切正常。但这显然不是正确的方法,因为机器会被 EB 自动添加。

所以我的问题是:如何在我的脚本中使用 Anaconda?

更多细节:

  • 我尝试了所有我能想到的方法将/anaconda/bin 添加到系统路径中。部署前/后部署脚本、自定义环境变量等。似乎无论我做什么,修改都不会持续到应用程序运行时。
  • 我尝试通过将 Anaconda 添加到 sys.path 来包含它:sys.path.append('/anaconda/bin')
    无济于事。使用以下内容:sys.path.append('/anaconda/lib/python2.7/site-packages') 允许我导入一些包,但在import pandas 上失败。奇怪的是,如果我 SSH 进入实例并使用他们的 python (/opt/python/run/venv/bin/python2.7) 运行应用程序,它运行良好。我要疯了吗?为什么在通过 EB 运行时在特定导入语句上失败?

【问题讨论】:

    标签: python amazon-web-services amazon-ec2 amazon-elastic-beanstalk anaconda


    【解决方案1】:

    找到答案:import pandas 失败,因为matplotlib 未能初始化,因为它试图获取当前用户的主目录。由于应用程序是通过 WSGI 运行的,因此 HOME 变量设置为 /home/wsgi但此目录不存在。因此,通过部署命令创建此目录解决了此问题。


    我在 Elastic Beanstalk 上使用 Anaconda 的总体设置如下:
    .ebextensions/options.config 包含:

    命令:
    00_download_conda:
    命令:'wget http://repo.continuum.io/archive/Anaconda-2.0.1-Linux-x86_64.sh'
    测试一下 ! -d /anaconda
    01_install_conda:
    命令:'bash Anaconda-2.0.1-Linux-x86_64.sh -b -f -p /anaconda'
    测试一下 ! -d /anaconda
    02_create_home:
    命令:'mkdir -p /home/wsgi'

    00_download_conda 只是下载 Anaconda。最新 Anaconda 版本下载链接见heretest 命令是 EB 让您仅在测试失败时执行命令的方式...只是在开发时防止重复下载。
    01_install_conda 使用选项 -b -f -p /anaconda 安装 Anaconda,允许将其安装在指定目录,无需用户输入,如果已安装则跳过安装。
    02_create_home 创建缺少的目录。

    最后 - 在你的 python 应用程序中使用 Anaconda:sys.path.append('/anaconda/lib/python2.7/site-packages')
    干杯!

    【讨论】:

    • 为了使其正常工作,我必须将mkdir /home/wsgi 替换为mkdir -p /home/wsgi(以防您第二次部署并且/home/wsgi 已经存在)并且我还在@987654337 部分添加了test: test ! -d /anaconda @ 因为似乎 -f 选项不起作用。但除此之外做得很好,谢谢!
    • 太棒了,真的很高兴它对你有用!我编辑了我的答案以包含您的更改。谢谢!
    猜你喜欢
    • 2016-06-07
    • 2017-01-12
    • 2020-11-02
    • 2014-12-30
    • 2013-12-07
    • 2014-07-15
    • 2018-05-12
    • 2017-03-26
    • 2013-07-08
    相关资源
    最近更新 更多