为何Homebrew安装的Miniconda环境位于base/envs目录下?
为什么Conda环境会放在
envs子目录下 这其实是Conda的标准默认设定,和你用Homebrew Cask安装的方式没关系。Conda从设计之初就约定把所有自定义环境统一放在base环境目录下的envs文件夹里,这么做主要有几个原因:
- 统一管理所有环境,避免base目录被零散的环境文件夹搞得乱七八糟
- 方便Conda命令快速定位、遍历所有已创建的环境(比如
conda env list能自动扫描这个目录) - 让自定义环境和base环境物理隔离,防止不同环境的依赖包互相干扰
你预期的/usr/local/Caskroom/miniconda/base/myenv并不是Conda的默认路径,除非你创建环境时手动加--prefix参数自定义路径。
解决R reticulate调用该环境的问题
reticulate识别不到这个环境,大概率是没正确指定环境路径或Conda的位置,试试下面的方法:
- 先确认Conda路径:在终端执行
which conda,会得到类似/usr/local/Caskroom/miniconda/base/bin/conda的路径,记下来 - 在R里指定环境:
- 方法一:直接指定环境的完整路径
library(reticulate) use_condaenv("/usr/local/Caskroom/miniconda/base/envs/myenv", required = TRUE) - 方法二:通过环境名称指定(需要先告诉reticulate Conda在哪)
library(reticulate) # 先设置conda可执行文件的路径 Sys.setenv(CONDA_EXECUTABLE = "/usr/local/Caskroom/miniconda/base/bin/conda") use_condaenv("myenv", required = TRUE)
- 方法一:直接指定环境的完整路径
- 验证是否生效:执行
py_config()查看当前用的Python环境信息,确认路径是不是你要的myenv环境
内容的提问来源于stack exchange,提问作者Carmen Sandoval
相关产品推荐
相关产品推荐

