如何在 Python 脚本中激活 Anaconda 环境?
How do you activate an Anaconda environment within a Python Script?
我搜索过堆栈溢出,但没有 post 专门针对 Anaconda 提供帮助。
我正在尝试在 Python 中使用我自己的命令行提示符。但为此,我需要激活我的 Anaconda 环境。我无法在网络上的任何地方找到如何 运行 一个基本的 python 脚本来激活所述环境。有人知道怎么做吗?
您应该能够使用命令行激活特定环境,只需键入:
activate environment-name
您必须在 Linux 上使用源代码。
source activate environment-name
http://conda.pydata.org/docs/using/envs.html#change-environments-activate-deactivate
编辑(2016 年 3 月 29 日)
抱歉,我看错了问题。您应该能够通过 Python 脚本使用 subprocess module 中的调用方法到 运行 shell 命令。
编辑: 子流程的基本示例:
subprocess.call(["activate", value])
以下将在 Python 3.5 中使用 subprocess 模块工作:
subprocess.run('source activate environment-name && "enter command here" && source deactivate', shell=True)
将 "enter command here" 替换为您想要 运行 的命令。您不需要在命令末尾使用 "source deactivate",但为了安全起见,将其包含在内。
这将在子进程调用期间临时激活 Anaconda 环境,之后环境将恢复到您的原始环境。这对于 运行 在临时环境中执行您想要的任何命令很有用。
我也需要同样的东西。但是我们不能在 Linux 的子进程中使用源代码。这是我的解决方案。
对于子进程,我在 shell 之后附加了 PYTHON 脚本,其中设置了 conda 环境。
# This is a Python code
script = 'python test.py'
cmd_dict = {
¦ ¦ 'activate_env': 'activate_env_%s.sh' % (random.randint(1000,9999)),
¦ ¦ 'script': script,
¦ ¦ 'conda_name': conda_name,
¦ ¦ }
cmd = 'cp activate.sh {activate_env} && echo "{script}" >> {activate_env} && sh {activate_env} {conda_name}'.format(**cmd_dict)
env = {}
env.update(os.environ)
result = subprocess.run(cmd, shell=True, env=env)
这是我的 activate.sh,
#!/bin/sh
_CONDA_ROOT="/home/***/miniconda3"
. "$_CONDA_ROOT/etc/profile.d/conda.sh" || return $?
_conda_activate "$@"
我搜索过堆栈溢出,但没有 post 专门针对 Anaconda 提供帮助。
我正在尝试在 Python 中使用我自己的命令行提示符。但为此,我需要激活我的 Anaconda 环境。我无法在网络上的任何地方找到如何 运行 一个基本的 python 脚本来激活所述环境。有人知道怎么做吗?
您应该能够使用命令行激活特定环境,只需键入:
activate environment-name
您必须在 Linux 上使用源代码。
source activate environment-name
http://conda.pydata.org/docs/using/envs.html#change-environments-activate-deactivate
编辑(2016 年 3 月 29 日)
抱歉,我看错了问题。您应该能够通过 Python 脚本使用 subprocess module 中的调用方法到 运行 shell 命令。
编辑: 子流程的基本示例:
subprocess.call(["activate", value])
以下将在 Python 3.5 中使用 subprocess 模块工作:
subprocess.run('source activate environment-name && "enter command here" && source deactivate', shell=True)
将 "enter command here" 替换为您想要 运行 的命令。您不需要在命令末尾使用 "source deactivate",但为了安全起见,将其包含在内。
这将在子进程调用期间临时激活 Anaconda 环境,之后环境将恢复到您的原始环境。这对于 运行 在临时环境中执行您想要的任何命令很有用。
我也需要同样的东西。但是我们不能在 Linux 的子进程中使用源代码。这是我的解决方案。
对于子进程,我在 shell 之后附加了 PYTHON 脚本,其中设置了 conda 环境。
# This is a Python code
script = 'python test.py'
cmd_dict = {
¦ ¦ 'activate_env': 'activate_env_%s.sh' % (random.randint(1000,9999)),
¦ ¦ 'script': script,
¦ ¦ 'conda_name': conda_name,
¦ ¦ }
cmd = 'cp activate.sh {activate_env} && echo "{script}" >> {activate_env} && sh {activate_env} {conda_name}'.format(**cmd_dict)
env = {}
env.update(os.environ)
result = subprocess.run(cmd, shell=True, env=env)
这是我的 activate.sh,
#!/bin/sh
_CONDA_ROOT="/home/***/miniconda3"
. "$_CONDA_ROOT/etc/profile.d/conda.sh" || return $?
_conda_activate "$@"