配置AWS Cloud9以使用Anaconda Python环境

时间:2019-01-09 02:25:13

标签: python amazon-web-services amazon-ec2 anaconda aws-cloud9

我希望AWS Cloud9使用我的Anaconda Python环境中的Python版本和特定软件包。我该如何实现?我应该在哪里查看设置或配置?

我当前的设置:我有一个带Ubuntu Linux的AWS EC2实例,并且我已经配置了AWS Cloud9与该EC2实例一起使用。

我在EC2实例上安装了Anaconda,并且创建了要使用的conda Python3环境,但是Cloud9始终希望使用Linux系统已安装的Python3版本。

4 个答案:

答案 0 :(得分:4)

我终于找到了一些迫使AWS Cloud9使用在我的AWS EC2实例的Anaconda环境中安装的Python3版本的功能。

为Python创建自定义AWS Cloud9运行程序的说明为here

{
    "cmd" : ["/home/ubuntu/anaconda3/envs/ijackweb/bin/python3.6", "$file", "$args"],
    "info" : "Running $project_path$file_name...",
    "selector" : "source.py"
}

我只是创建一个新的运行器,并将上面的代码粘贴到其中,然后Cloud9使用Anaconda环境的Python3版本运行我的应用程序。

对于上面的代码,我唯一不了解的是“选择器”:“ source.py”行的功能。

答案 1 :(得分:1)

您可以使用“ shell脚本”运行器类型。为此,您将:

  1. 使用python3和您想要的任何软件包创建您的conda env。称为py3env
  2. 创建一个目录以保存您的运行程序脚本,例如$HOME/c9_runner_scripts
  3. 在其中放入一个名为py3env_runner.sh的脚本,其代码如下:

    conda activate py3env python ~/c9/my_py3_script.py

  4. 然后使用“ shell脚本”运行器类型创建运行配置,然后输入c9_runner_scripts/py3env_runner.sh

答案 2 :(得分:1)

经过一些测试,我意识到我以前的回答使您无法使用调试器。在@Sean_Calgary的答案(比我的原始答案更好)的基础上,您可以编辑一个内置的python运行器(同样,只需用conda env的python路径的完整路径替换python调用),就像这样:

    {
  "script": [
    "if [ \"$debug\" == true ]; then ",
    "    /home/tg/miniconda/envs/env-name/bin/python -m ikp3db -ik_p=15471 -ik_cwd=$project_path \"$file\" $args",
    "else",
    "   /home/tg/miniconda/envs/env-name/bin/python \"$file\" $args",
    "fi",
    "checkExitCode() {",
    "    if [ $1 ] && [ \"$debug\" == true ]; then ",
    "        /home/tg/miniconda/envs/env-name/bin/python -m ikp3db 2>&1 | grep -q 'No module' && echo '",
    "    To use python debugger install ikpdb by running: ",
    "        sudo yum update;",
    "        sudo yum install python36-devel;",
    "        sudo pip-3.6 install ikp3db;",
    "        '",
    "    fi",
    "   return $1",
    "}",
    "checkExitCode $?"
  ],
  "python_version": "python3",
  "working_dir": "$project_path",
  "debugport": 15471,
  "$debugDefaultState": false,
  "debugger": "ikpdb",
  "selector": "^.*\\.(py)$",
  "env": {
    "PYTHONPATH": "$python_path"
  },
  "trackId": "Python3"
}

要执行此操作,只需单击右下角CWD旁边的“运行器”-> python3->编辑运行器->在/.c9/runners中另存为“ env-name.run”(另存为应该默认将您指向正确的目录。

N.B。

  1. 用您的环境名称始终替换env-name
  2. 您将需要在conda env中安装调试程序包。称为ikp3db
  3. 您可能需要通过激活环境并运行which python来检查您的conda envs可执行python的路径(他之所以抓我,是因为我的路径以/python而不是/python3.6结尾,即使安装了python 3.6)

答案 3 :(得分:-1)

对我来说,在 centos 7 上使用 conda python v 3.9.4 执行的唯一方法是在我的 .bash_profile 中添加一个 conda activate 行,如下所示:

<块引用>

conda 激活 /var/www/my_conda/python3.9

然后在 Cloud 9 中,当我在 conda python 3.9 环境下运行我的代码时,一切都很好。

这是我的简单python代码,它将打印当前的python版本

import sys
print(sys.version)

最好的。