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

zhi*_*est 11 python anaconda

我已经搜索了堆栈溢出,但没有帖子专门帮助Anaconda.

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

bri*_*hsu 8

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

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

用要运行的命令替换“在此处输入命令”。您不需要在命令末尾使用“源停用”功能,但是为了安全起见,将其包括在内。

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

  • @brianbhsu 我尝试在 Windows 中使用此方法,出现以下错误:`CommandNotFoundError:您的 shell 尚未正确配置为使用'conda activate`。请帮帮我。 (2认同)

Iva*_*aev 5

在这里我发现这段代码对我有用(Ubuntu)

import os
os.system("conda run -n <env_name> python <file_name>.py")

Run Code Online (Sandbox Code Playgroud)

或者您也可以使用子流程

import subprocess
subprocess.run('conda run -n <env_name> python <file_name>.py', shell=True)
Run Code Online (Sandbox Code Playgroud)


jsb*_*jsb -6

您应该能够使用命令行通过键入以下内容来激活特定环境:

activate environment-name
Run Code Online (Sandbox Code Playgroud)

您必须在 Linux 上使用源代码。

source activate environment-name
Run Code Online (Sandbox Code Playgroud)

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

编辑(2016 年 3 月 29 日)

抱歉,我看错问题了。您应该能够使用subprocess 模块中的 call 方法通过 Python 脚本运行 shell 命令。

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

subprocess.call(["activate", value])
Run Code Online (Sandbox Code Playgroud)

  • 这有效,但什么也不做:)它更改命令提示符活动环境,然后退出命令提示符。(所以基本上发生的情况是:你在一个进程中运行你的Python,比如说X。Subprocess.call创建一个新进程,比如说Y。然后Y的活动环境发生变化,然后Y终止......:)最好的做法是尝试你的答案...) (16认同)