在 Python 内激活 conda 环境

Activating conda environment within Python

conda 是否提供了一种从 运行 Python 程序中激活环境的方法?

例如,使用 virtualenv 创建的每个虚拟环境 (venv) 都有一个脚本 venv/bin/activate_this.py(假设您在 Linux),可用于在 运行 Python 程序中激活 venv,如下所示:

activate_this = '/full/path/to/venv/bin/activate_this.py'
with open(activate_this) as file_:
    exec(file_.read(), dict(__file__=activate_this))

我只是想知道我是否需要为这项工作调整 virtualenv 的 activate_this.py(virtualenv 和 conda 环境的结构略有不同,所以不能按原样工作)或者有现有的方法。

我认为这是不可能的。我不是这方面的专家,但是python 虚拟环境的解释器是不同的。您还可以看到该文件只会更改您的系统路径,因此要使用的 python 解释器将指向虚拟环境的 on。所以我认为您实际上必须使用虚拟环境的 python 解释器在您的脚本中生成一个新的 python 进程。像这样:

import subprocess

subprocess.run(['/full/path/to/venv/bin/python', 'path/to/script.py'])