我正在寻找一种好方法来从运行代码或交互式 python 实例中找出我所在的 conda 环境的名称。
用例是我正在使用 miniconda 安装的 Python 2 和 Python 3 内核运行 Jupyter 笔记本。默认环境是 Py3。 Py2 有单独的环境。在笔记本文件中,我希望它尝试 conda install foo
。我目前正在使用 subcommand
来执行此操作,因为我找不到与 pip.main(['install','foo'])
等效的编程 conda。
问题是该命令需要知道要安装的 Py2 环境的名称 foo
如果笔记本正在使用 Py2 内核运行。如果没有该信息,它将安装在默认的 Py3 环境中。我希望代码能够自行确定它所处的环境以及正确的名称。
到目前为止我得到的最好的解决方案是:
import sys
def get_env():
sp = sys.path[1].split("/")
if "envs" in sp:
return sp[sp.index("envs") + 1]
else:
return ""
有没有更直接/合适的方法来完成这个?
原文由 Alnilam 发布,翻译遵循 CC BY-SA 4.0 许可协议
你想要
$CONDA_DEFAULT_ENV
或$CONDA_PREFIX
:在蟒蛇中:
对于通常更有用的绝对完整路径:
环境变量没有很好的记录。你可以找到这里提到的
CONDA_DEFAULT_ENV
: https ://www.continuum.io/blog/developer/advanced-features-conda-part-1关于
CONDA_PREFIX
我能找到的唯一信息是这个问题: https ://github.com/conda/conda/issues/2764