配置 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 类型。为此,您需要:
- 创建你的 conda env,其中包含 python3 和你想要的任何包等。称之为
py3env
- 创建一个目录来保存您的 运行ner 脚本,例如
$HOME/c9_runner_scripts
在其中放置一个名为 py3env_runner.sh
运行ner 的脚本,代码如下:
conda activate py3env
python ~/c9/my_py3_script.py
然后使用 '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.
- 始终将
env-name
替换为您的环境名称。
- 您需要在 conda 环境中安装调试器的包。它被称为
ikp3db
.
- 您可能需要通过激活环境和 运行
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)
最佳。
我希望 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 类型。为此,您需要:
- 创建你的 conda env,其中包含 python3 和你想要的任何包等。称之为
py3env
- 创建一个目录来保存您的 运行ner 脚本,例如
$HOME/c9_runner_scripts
在其中放置一个名为
py3env_runner.sh
运行ner 的脚本,代码如下:conda activate py3env python ~/c9/my_py3_script.py
然后使用 '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.
- 始终将
env-name
替换为您的环境名称。 - 您需要在 conda 环境中安装调试器的包。它被称为
ikp3db
. - 您可能需要通过激活环境和 运行
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)
最佳。