如何在Python脚本中激活Anaconda环境?

时间:2016-03-29 04:14:18

标签: python anaconda

我搜索了堆栈溢出,但没有帖子特别帮助Anaconda。

我正在尝试使用Python自己的命令行提示符。但要做到这一点,我需要激活我的Anaconda环境。我无法在网络上的任何地方找到如何运行基本的python脚本,以便能够激活所述环境。有谁知道怎么做?

3 个答案:

答案 0 :(得分:6)

以下内容将在Python 3.5中使用子进程模块:

subprocess.run('source activate environment-name && "enter command here" && source deactivate', shell=True)

使用您要运行的命令替换“enter command here”。您不需要在命令末尾使用“source deactivate”,但它只是为了安全而包含在内。

这将在子进程调用期间临时激活Anaconda环境,之后环境将恢复到原始环境。这对于在临时环境中运行所需的任何命令非常有用。

答案 1 :(得分:0)

我需要同样的东西。但是我们不能在 Linux 的子进程中使用source。这是我的解决方法。

对于子进程,我将PYTHON脚本附加到设置了conda环境的shell后面。

# 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 "$@"

答案 2 :(得分:-4)

只需输入以下命令就可以使用命令行激活特定环境:

activate environment-name

你必须在Linux上使用source。

source activate environment-name

http://conda.pydata.org/docs/using/envs.html#change-environments-activate-deactivate

编辑(2016年3月29日)

抱歉,我误解了这个问题。您应该能够使用subprocess module中的call方法通过Python脚本运行shell命令。

编辑:子流程的基本示例:

subprocess.call(["activate", value])