如何从名称中获取 conda env 的路径?
How to get path of conda env from its name?
当我执行 conda info --envs
时,我会得到所有环境及其位置的列表,如下所示:
# conda environments:
#
base * /Users/mbp/miniconda3
myenv /Users/mbp/miniconda3/envs/myenv
有没有办法从命令行获取 myenv
环境的位置?可能类似于 conda info --envs myenv
得到
/Users/mbp/miniconda3/envs/myenv
用例是什么?
我想在 GitHub 操作中缓存所有环境依赖项。这必须在激活环境之前发生。如果我知道环境的位置,我可以缓存其中的所有文件。
conda info --envs | grep -Po 'myenv\K.*' | sed 's: ::g'
此 bash 命令将从 conda 检索所有环境并找到从 myenv
开始的行并将其提供给 sed
命令,该命令依次删除空格
令人惊讶的是它对我有用
Conda 处理前缀解析 (locate_prefix_by_name
) 的内部函数当前位于 conda.base.context
,因此可以避免使用如下脚本列出所有环境:
conda-locate.py
#!/usr/bin/env conda run -n base python
import sys
from conda.base.context import locate_prefix_by_name
print(locate_prexif_by_name(sys.argv[1]), end='')
用法
# make executable
chmod +x conda-locate.py
./conda-locate.py jupyter
# /Users/user/miniforge/envs/jupyter
您可能想要添加一个 try..catch 来处理 conda.exceptions.EnvironmentNameNotFound
异常。
当我执行 conda info --envs
时,我会得到所有环境及其位置的列表,如下所示:
# conda environments:
#
base * /Users/mbp/miniconda3
myenv /Users/mbp/miniconda3/envs/myenv
有没有办法从命令行获取 myenv
环境的位置?可能类似于 conda info --envs myenv
得到
/Users/mbp/miniconda3/envs/myenv
用例是什么?
我想在 GitHub 操作中缓存所有环境依赖项。这必须在激活环境之前发生。如果我知道环境的位置,我可以缓存其中的所有文件。
conda info --envs | grep -Po 'myenv\K.*' | sed 's: ::g'
此 bash 命令将从 conda 检索所有环境并找到从 myenv
开始的行并将其提供给 sed
命令,该命令依次删除空格
令人惊讶的是它对我有用
Conda 处理前缀解析 (locate_prefix_by_name
) 的内部函数当前位于 conda.base.context
,因此可以避免使用如下脚本列出所有环境:
conda-locate.py
#!/usr/bin/env conda run -n base python
import sys
from conda.base.context import locate_prefix_by_name
print(locate_prexif_by_name(sys.argv[1]), end='')
用法
# make executable
chmod +x conda-locate.py
./conda-locate.py jupyter
# /Users/user/miniforge/envs/jupyter
您可能想要添加一个 try..catch 来处理 conda.exceptions.EnvironmentNameNotFound
异常。