疑问:在base环境执行conda update conda是否仅更新当前环境?
问题解答
1. conda update conda仅更新当前激活环境的conda包
没错,这个命令的作用范围就是当前激活的环境。你在base环境执行它,只会更新base环境里的conda包;如果切换到py39环境执行,才会更新py39环境中的conda(不过默认情况下非base环境不会自带conda包,除非你手动安装过)。
2. 为什么base环境更新后,py39的Spyder还是旧版本
Conda的每个环境都是完全独立的隔离空间,Spyder是安装在对应环境里的包——base环境的Spyder和py39环境的Spyder是两个完全分开的实例,互相不影响。要更新py39环境的Spyder,必须先激活该环境,再执行conda update spyder或者conda install spyder=5.5.1。
3. 关于conda命令"跨环境"的澄清
你日常使用的conda命令,默认是base环境里的可执行程序(因为Anaconda安装时会把base环境的bin目录加到系统PATH最前面),它确实支持跨环境操作(比如不用激活py39,直接运行conda install -n py39 spyder=5.5.1就能给py39装新版本Spyder)。但conda update conda是个特例:它更新的是当前激活环境中的conda包,而不是那个用来执行命令的base环境里的conda。
简单总结:
- 用base的conda命令管理其他环境:完全可行,比如创建新环境、给其他环境装包
- 但
conda update conda:只修改当前激活环境里的conda包,和你用哪个环境的conda命令来执行无关
内容的提问来源于stack exchange,提问作者user2153235
相关产品推荐
相关产品推荐

