Anaconda(有时)会在默认情况下与conda不同的位置创建环境——它们不同步



Anaconda和conda不同步。默认情况下,Anaconda似乎在与conda不同的地方创建conda环境,conda info --env显示重复的输出,其中一个具有相同环境名称的大小写版本。

事实上,conda和Anaconda在两个不同的地方创建目录是一个问题。默认情况下,它们应该同步。有时我使用Navigator创建环境,有时使用conda命令行。

如果我用大写名称指定一个新环境,conda-info-envs会报告两次(有时(。这不是什么大问题。然而,这对新手来说是令人困惑的,对不太熟悉的人来说是令人讨厌的。

conda info --envs的输出为:

# conda environments:
#
base                     C:ProgramDataAnaconda3
Rpy2                     C:ProgramDataAnaconda3envsRpy2
dash_plotly              C:ProgramDataAnaconda3envsdash_plotly
genepattern           *  C:ProgramDataAnaconda3envsgenepattern
hranalytics              C:ProgramDataAnaconda3envshranalytics
my_hranalytics           C:ProgramDataAnaconda3envsmy_hranalytics
rpy2                     C:ProgramDataAnaconda3envsrpy2
widgets-tutorial         C:ProgramDataAnaconda3envswidgets-tutorial
BeakerX                  C:Usersrlysakow.condaenvsBeakerX
R361                     C:Usersrlysakow.condaenvsR361
beakerx                  C:Usersrlysakow.condaenvsbeakerx
Rpy2                     c:ProgramDataAnaconda3envsRpy2
dash_plotly              c:ProgramDataAnaconda3envsdash_plotly

当我导航到父目录时,具有相同名称的"重复"环境(即Rpy2和Rpy2(实际上并不存在。只有一个是大写字母。小写的实例似乎是Python或conda的某种工件。

我的conda、AnacondaNavigator和Python版本如下:conda版本4.8.2Anaconda版本2019.10Python 3.7.4版

c:programdataAnaconda3是我默认的Anaconda安装位置。我不知道它为什么开始在目录C:Usersusername.condaenvs中创建环境。去年,我在一台完全不同的电脑上看到了这一点。

我知道如何通过在命令行中指定conda或先在那里导航来强制conda在特定位置创建新环境。然而,我不想在所有环境创建任务中都使用conda。

以下是更多信息:

当我执行conda info时,我在Anacondabase环境中得到以下输出:

(基本(C:\00-RSL\conda-envs>conda-info

active environment : base
active env location : C:ProgramDataAnaconda3
shell level : 1
user config file : C:Usersrlysakow.condarc
populated config files : C:Usersrlysakow.condarc
conda version : 4.8.2
conda-build version : 3.18.9
python version : 3.7.4.final.0
virtual packages :
base environment : C:ProgramDataAnaconda3  (writable)
channel URLs : https://conda.anaconda.org/r/win-64
https://conda.anaconda.org/r/noarch
https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
https://conda.anaconda.org/conda-forge/win-64
https://conda.anaconda.org/conda-forge/noarch
package cache : C:ProgramDataAnaconda3pkgs
C:Usersrlysakow.condapkgs
C:UsersrlysakowAppDataLocalcondacondapkgs
envs directories : C:ProgramDataAnaconda3envs
C:Usersrlysakow.condaenvs
C:UsersrlysakowAppDataLocalcondacondaenvs
platform : win-64
user-agent : conda/4.8.2 requests/2.22.0 CPython/3.7.4 Windows/10 Windows/10.0.17763
administrator : True
netrc file : None
offline mode : False

如何将Anaconda和conda配置为始终在c:programdataanaconda3中创建所有新环境?

如果我正确理解这个问题,有几个可能的解决方案。

  1. 每次创建环境时都明确指定所需的envs目录。要做到这一点,你可以键入:

    conda create --prefix=/users/.../yourEnvName python=x.x

  2. 配置conda使用的环境路径变量。要做到这一点,你可以键入:

    conda config --append envs_dirs /path/to/envs

此外,链接到类似的问题,我发现这对如何为conda-create指定新的环境位置的相关问题很有帮助。

我在Windows 10上使用Anaconda和Anaconda.Navivator(2.1.0(。它曾经将环境存储在文件夹C:\ProgramData\Anaconda3\envs中,但在某个时候开始使用其他路径:C:\Users\UserName.conda\envs。这不方便与IDE一起使用,所以我希望所有env都在一个位置,但我似乎找不到可以在哪里配置它。

我试过conda config --set envs_dirs C:ProgramDataAnaconda3envs

但它给了我错误CondaValueError: Key 'envs_dirs' is not a known primitive parameter

这个答案帮助了我。我在C:\Users\UserName\中找到了.condarc文件,并在其中添加了几行。在此之后,Anaconda.Navigator开始在原始文件夹中创建新的env,所有env都可以从IDE中看到:

envs_dirs:
- C:ProgramDataAnaconda3envs

最新更新