8

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

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

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

4

4 回答 4

6

我终于找到了强制 AWS Cloud9 使用安装在我的 AWS EC2 实例上的 Anaconda 环境中的 Python3 版本的东西。

为 Python 创建自定义 AWS Cloud9 运行器的说明如下

{
    "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" 行的作用。

于 2019-01-19T22:56:37.807 回答
2

经过一些测试,我意识到我之前的回答使您无法使用调试器。在@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 [ $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 旁边的 'runners' -> python3 -> 编辑 runner -> 在 /.c9/runners 中另存为 'env-name.run' (另存为应该指向你默认情况下到正确的目录)。

注意

  1. 整个替换env-name为您的环境名称。
  2. 您将需要安装在 conda 环境中的调试器包。它被称为ikp3db
  3. 您可能需要通过激活环境并运行来检查您的 conda envs 可执行 python 的路径which python(他抓住了我,因为我的路径以/python, not结尾/python3.6,即使安装的是 python 3.6)
于 2019-08-15T08:45:00.207 回答
1

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

  1. 使用 python3 和任何你想要的包等创建你的 conda 环境。称它为py3env
  2. 创建一个目录来保存你的运行脚本,比如$HOME/c9_runner_scripts
  3. 在其中放置一个名为py3env_runner.shrunner 的脚本,代码如下:

    conda activate py3env python ~/c9/my_py3_script.py

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

于 2019-07-31T15:52:26.743 回答
-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 env 下运行我的代码时,一切都很好。

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

import sys
print(sys.version)

最好的。

于 2021-04-29T05:38:36.417 回答