我正在寻找一种好方法来从正在运行的代码或交互式 python 实例中找出我所在的 conda 环境的名称。
用例是我通过 miniconda 安装运行带有 Python 2 和 Python 3 内核的 Jupyter 笔记本。默认环境是Py3。 Py2 有一个单独的环境。在笔记本文件中,我希望它尝试conda install foo
。我在用着subcommand
暂时这样做,因为我找不到相当于的程序化 condapip.main(['install','foo'])
.
问题是该命令需要知道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 ""
有没有更直接/合适的方法来实现这一点?
你要$CONDA_DEFAULT_ENV
or $CONDA_PREFIX
:
$ source activate my_env
(my_env) $ echo $CONDA_DEFAULT_ENV
my_env
(my_env) $ echo $CONDA_PREFIX
/Users/nhdaly/miniconda3/envs/my_env
$ source deactivate
$ echo $CONDA_DEFAULT_ENV # (not-defined)
$ echo $CONDA_PREFIX # (not-defined)
在Python中:
import os
print(os.environ['CONDA_DEFAULT_ENV'])
对于绝对完整路径,通常更有用:
Python 3.9.0 | packaged by conda-forge | (default, Oct 14 2020, 22:56:29)
[Clang 10.0.1 ] on darwin
import os; print(os.environ["CONDA_PREFIX"])
/Users/miranda9/.conda/envs/synthesis
环境变量没有很好的记录。你可以找到CONDA_DEFAULT_ENV
这里提到:https://www.continuum.io/blog/developer/advanced-features-conda-part-1 https://www.continuum.io/blog/developer/advanced-features-conda-part-1
唯一的信息是关于CONDA_PREFIX
我可以找到这个问题:https://github.com/conda/conda/issues/2764 https://github.com/conda/conda/issues/2764
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)