什么';“的目的是什么?”;“基础”;(最佳实践)在Anaconda?

什么';“的目的是什么?”;“基础”;(最佳实践)在Anaconda?,anaconda,conda,Anaconda,Conda,它说这是一个默认环境,但“你不想把程序放到你的基本环境中” 那么我到底应该用它做什么呢?我创建的其他环境是否继承自基础环境?基础环境是安装conda本身的地方。最好使用Miniconda,并将所有需要的东西安装到单独的环境中 其他环境不会从基本环境继承包。但是基本环境的bin/目录位于可执行文件的搜索路径中。因此,如果您从任何环境(通常没有安装conda)内部调用conda,则将使用基本环境中的一个 如果将其他可执行文件安装到基本环境中,则可以从其他环境调用它们。但是,要区分您可以调用的东西是在

它说这是一个默认环境,但“你不想把程序放到你的基本环境中”


那么我到底应该用它做什么呢?我创建的其他环境是否继承自基础环境?

基础环境是安装
conda
本身的地方。最好使用Miniconda,并将所有需要的东西安装到单独的环境中

其他环境不会从基本环境继承包。但是基本环境的
bin/
目录位于可执行文件的搜索路径中。因此,如果您从任何环境(通常没有安装conda)内部调用
conda
,则将使用基本环境中的一个

如果将其他可执行文件安装到基本环境中,则可以从其他环境调用它们。但是,要区分您可以调用的东西是在您的环境中,还是在基本环境中,您将有一段非常困难的时间。
因此,最好在基本环境中使用
conda
。如果您使用conda安装了其他通用工具,比如
git
make
。但是由Python/R/whatever代码导入的包不属于基本环境

如果使用相同的软件包创建多个环境,则不必担心磁盘空间问题
conda
在将相同的包硬链接到多个环境以节省空间方面做得非常好


完整的Anaconda安装程序将大量内容放入基本环境中。起初这似乎很方便,但当您开始创建新环境时,您会遇到我提到的问题。您可以从新环境调用东西,尽管它没有安装在那里。使用Miniconda可以避免这种情况,但代价是必须先创建一个新环境,然后才能真正使用这些东西。然而,有一个anaconda meta软件包,你可以安装它,只需一个命令就可以获得“大量的东西”。

你从哪里看到这个建议?@darthbith很高兴看到Conda开发者支持一个最小的基本实践。我强烈鼓励这一点,因为它似乎是最稳定的长期方案,并且最小化了康达必须解决的过度复杂的依赖关系图。现在,如果只有Anaconda停止了在base中安装所有组件的发货……在较新版本的conda中,
conda
是一个bash函数,而不是一个特定的可执行文件(尽管我相信该可执行文件仍然具有向后兼容性)。此外:任何环境中安装的任何组件都通过硬链接共享,所以,实际上没有理由为了“继承”的目的而支持在base中安装一些东西。在base中安装的唯一优点是,如果允许自动激活,则可以在shell初始化时立即使用工具。就我个人而言,我仍然安装了git、
jupyter
,以及一些我每天为方便起见使用的特定于域的命令行工具。@RolandWeber在您没有管理员权限的集群上,Conda基本上可以是您的本地包管理器。@darthbith
activate
不能作为命令实现。它需要修改当前shell的环境,而命令在子shell中执行或作为单独的进程运行
activate
必须使用
source
调用,或者必须是shell函数或别名。@RolandWeber这就是解释。非常感谢。