配置 AWS Cloud9 以使用 Anaconda Python 环境

Configure AWS Cloud9 to use Anaconda Python Environment

我希望 AWS Cloud9 使用我的 Anaconda Python 环境中的 Python 版本和特定包。我怎样才能做到这一点?我应该在哪里查看设置或配置?

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

我在EC2实例上安装了Anaconda,我创建了一个conda Python3环境可以使用,但是Cloud9总是想用我Linux系统安装的Python3版本。

我终于找到了强制 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 运行我的应用程序。

关于上面的代码,我唯一不明白的是 "selector": "source.py" 行的作用。

您可以使用 'shell script' 运行ner 类型。为此,您需要:

  1. 创建你的 conda env,其中包含 python3 和你想要的任何包等。称之为 py3env
  2. 创建一个目录来保存您的 运行ner 脚本,例如 $HOME/c9_runner_scripts
  3. 在其中放置一个名为 py3env_runner.sh 运行ner 的脚本,代码如下:

    conda activate py3env python ~/c9/my_py3_script.py

  4. 然后使用 'shell script' 运行 类型创建一个 运行 配置并输入 c9_runner_scripts/py3env_runner.sh

经过一些测试,我意识到我之前的回答阻止了您使用调试器。在@Sean_Calgary 的答案(比我原来的答案更好)的基础上,您可以编辑其中一个内置的 python 跑步者(同样,只需将 python 调用替换为conda env 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 [  ] && [ \"$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 ",
    "}",
    "checkExitCode $?"
  ],
  "python_version": "python3",
  "working_dir": "$project_path",
  "debugport": 15471,
  "$debugDefaultState": false,
  "debugger": "ikpdb",
  "selector": "^.*\.(py)$",
  "env": {
    "PYTHONPATH": "$python_path"
  },
  "trackId": "Python3"
}

为此,只需单击右下角 CWD 旁边的 'runners' -> python3 -> 编辑运行程序 -> 在 / 中另存为 'env-name.run'。 c9/runners(默认情况下,另存为应指向正确的目录)。

N.B.

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

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

conda activate /var/www/my_conda/python3.9

然后在 Cloud 9 中,当我 运行 我的代码在我的 conda python 3.9 env 下一切正常。

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

import sys
print(sys.version)

最佳。