装好Conda之后,很长一段时间里我最常用的命令就三个:conda create、conda activate、conda install。直到有次帮同事排查环境问题,才发现很多人连conda init到底干了什么、配置源的时候channels和default_channels有什么区别都没搞清。Conda的基础配置命令就是那几条,但每一条背后都藏着一堆细节,搞懂之后能少走很多弯路。
这篇文章我会从安装完Conda之后的第一步配置开始,把初始化、换源、环境管理、包管理、报错排查这几块常用命令全部捋一遍。无论你是在Windows、Linux还是macOS上用的Conda,无论你是想给TensorFlow建独立环境,还是在VSCode里接上Conda终端,这篇文章都适用。
1. 装完Conda先别急着建环境:conda init 与 Shell 接入
很多人装完Anaconda或者Miniconda,第一件事就是打开终端敲conda create -n test python=3.9,结果在Windows的CMD里直接提示'conda' 不是内部或外部命令,也不是可运行的程序或批处理文件。这个报错几乎天天有人遇到,根因通常是环境变量没有配好,或者你压根没跑过conda init。
1.1 conda init 到底做了什么
conda init这条命令的作用是:把Conda的初始化脚本写入你的Shell配置文件里,让你每次打开终端就能直接用conda命令,而且不用手动source activate就能激活虚拟环境。
在Linux/macOS上,conda init会修改你的~/.bashrc(如果你用的bash)、~/.zshrc(如果你用的zsh)等文件,往里追加一段类似这样的内容:
>>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('/home/user/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/home/user/anaconda3/etc/profile.d/conda.sh" ]; then . "/home/user/anaconda3/etc/profile.d/conda.sh" else export PATH="/home/user/anaconda3/bin:$PATH" fi fi unset __conda_setup <<< conda initialize <<<在Windows上,conda init会往 PowerShell 的 profile 脚本里写类似逻辑,同时Anaconda Prompt这个快捷方式本身会自动加载对应的钩子脚本,这也是为什么你在 Anaconda Prompt 里能直接用 conda,但切到普通 CMD 或 PowerShell 里就用不了。
顺带一提,你可能会看到conda init no change这样的提示,比如conda init no change C:\Software_Install\Anaconda\Scripts。这不是报错,意思是你的Shell配置文件里已经有conda的初始化脚本了,不需要再重复写入。只有在修改了Conda安装路径、或者想恢复默认Shell设置的时候,才需要关心这个提示。
1.2 遇到 'conda' 不是内部或外部命令,该怎么处理
这个报错高频出现在Windows上,原因是装了Conda之后,环境变量PATH没有被正确配置。之前我遇到过一次,帮朋友排查,发现他的Anaconda安装在C:\Software_Install\Anaconda,但是环境变量里只加了C:\Software_Install\Anaconda\Scripts和C:\Software_Install\Anaconda\Library\bin,少了最关键的C:\Software_Install\Anaconda(也就是conda.exe所在的目录)。
手动配置的正确姿势是:
- 打开"系统属性 -> 环境变量"。
- 在用户变量或系统变量的
Path中,把下面三行加进去(注意换成你的实际安装路径):C:\Software_Install\AnacondaC:\Software_Install\Anaconda\ScriptsC:\Software_Install\Anaconda\Library\bin
- 保存后重新打开终端,再执行
conda --version验证。
如果你在Windows的CMD里已经配置了环境变量还是不行,可以再跑一次conda init cmd.exe或conda init powershell,然后重启终端。正常情况下conda --version就能输出版本号了。
1.3 VSCode 里接不上 Conda 终端或者识别出两套环境
VSCode用Conda环境是另一个常见坑。症状是两种:VSCode的终端里输入conda提示找不到命令;或者VSCode右下角/命令面板里能看到好几个Python解释器,其中有两套长得很像Conda环境,不知道选哪个。
第一种情况,基本上就是因为VSCode终端打开时没有加载~/.bashrc或Windows的profile。解决办法是:在VSCode设置里搜索terminal.integrated.profiles.windows或对应的Linux/macOS配置,确保默认终端是PowerShell或bash,并且勾选了"继承环境变量";更省事的做法是直接在VSCode里执行conda init,然后重启VSCode。
第二种情况,VSCode识别到两个Conda环境,通常是因为你既装了Anaconda,又装了Miniconda,或者Anaconda装在默认路径但VSCode自动扫描了多个目录。解决方案是在VSCode的设置里手动指定python.defaultInterpreterPath,指向你想要的那套环境里的python.exe。比如:
{ "python.defaultInterpreterPath": "C:\\Users\\yourname\\anaconda3\\envs\\tf\\python.exe" }或者用命令面板Python: Select Interpreter手动选一次,VSCode会在工作区里记住你的选择。另外,如果你不想让VSCode扫描到所有环境,可以在设置里把python.condaPath指到你指定环境的conda.exe上。
1.4 run 'conda init' before 'conda activate' 的根因
这个报错的完整文本通常是CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init <shell_name>。本质就是当前Shell没有加载conda的钩子脚本,所以conda activate这个内置函数根本不存在。
很多人以为原因是"没运行conda init",其实很多情况下是运行了conda init但没有重启Shell,或者你在某个子Shell里改了配置但当前进程没生效。最简单的解决路径:
# 先初始化当前shell conda init bash # 重新加载配置 source ~/.bashrc # 再激活环境 conda activate testWindows PowerShell同理:
conda init powershell # 然后重启PowerShell,再执行conda activate这里有个小技巧:如果你不想每次打开Shell都走一遍初始化,也可以手动把conda.sh的source命令加到你的Shell配置里。但正常情况下直接conda init就够了,别手动改配置,出错了反而麻烦。
2. 换源这件事水很深:镜像源配置与 solving environment 卡住
Conda默认的下载源在境外,国内网络环境下经常卡在Solving environment阶段,或者下载到一半超时。我见过不少人在这一步卡了十几分钟,最后干脆 Ctrl+C 放弃。这里要说的不只是conda config --add channels这么简单,channels、default_channels、custom_channels的区别很容易搞混。
2.1 为什么卡在 Solving environment
solving environment是Conda在解析依赖关系的过程。它需要从各个channel(软件源)拉取元数据,然后计算出一套满足所有包版本约束的组合。如果你当前配置的channel在国外,网络延迟高或者连接不稳定,元数据拉不下来,那就一直卡在那。
另外,有些情况下不是网络问题,而是环境里已有的包版本冲突太多,Conda要尝试非常多的组合才能找到可行解。之前我遇到一个情况:环境里有个老版本的numpy,想再装一个需要新版本numpy的包,Conda足足跑了五分钟才算出方案。这时候换源只能解决网络问题,解决不了依赖冲突问题。
2.2 手把手配置清华源
我目前最推荐的做法是用清华的Anaconda镜像源,配置命令如下(Linux、Windows通用,Linux/macOS在终端跑,Windows在Anaconda Prompt或PowerShell里跑):
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set show_channel_urls yes这里有个关键点:--add channels是往最前面加,所以后加的源优先级更高。如果你想彻底替换默认源,而不是把清华源混在默认源前面,建议直接修改~/.condarc文件(Windows路径是C:\Users\用户名\.condarc),把channels设置成:
channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ show_channel_urls: true改完之后建议执行一次conda clean -i清除索引缓存,这样下次解析时才会重新拉取新源的元数据。
2.3 channels、default_channels 和 custom_channels 的区别
很多人配置完源之后,执行conda config --show一看,发现channels里确实有清华源,但执行conda info的时候默认源还是repo.anaconda.com。这是因为Conda安装时会在配置里写死一些默认channel,default_channels是一个内置概念,表示Anaconda官方默认源,而channels里写个defaults就代表引用官方默认源。
如果你在.condarc里只设置了channels,那么Conda会默认把defaults也加进去(除非你完全移除它)。所以如果你想让Conda只走清华源、完全不触碰官方源,可以在.condarc里加上:
default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/而custom_channels则是用来把具体的channel名映射到自定义地址的,比如从https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud拉取conda-forge、pytorch等。一般场景下用不上,知道有这个东西即可。
2.4 不用镜像源也能用的方案:conda-forge 与 Miniforge
这里提一个容易踩的坑:用默认源或者清华源装一些冷门包时,可能压根找不到。因为Anaconda官方主源里的包是有限制的,很多社区维护的包只在conda-forge这个channel里有。你可以把conda-forge直接加到channels里,但要注意它有严格的包构建规范,混用时最好设置 channel priority 为 strict:
conda config --set channel_priority strict如果不是非用Anaconda官方发行版不可,我建议直接装Miniforge,它默认用conda-forge作为默认源,社区包覆盖率高,版权风险也更小。装好Miniforge之后直接用conda install装常见的包,很多情况下会比Anaconda默认源更快更稳。
2.5 换源之后的验证方法
配置好源之后,建议先跑一次conda create -n test python=3.9验证一下速度和可用性。再执行conda install numpy看看是否秒装。如果还是慢,执行conda clean -i清理索引缓存,再不行就检查conda config --show channels确认当前生效的channel列表。
有一点要提醒:如果你是在公司网络环境里,出口代理或防火墙也可能导致solving environment卡住,这时候换源未必有用,得先检查网络。
3. 环境管理三板斧:创建、激活、删除与 clone
Conda最核心的用法就是虚拟环境。网上教程喜欢一次性给一整套命令,但实际上很多人不知道conda create和conda env create的区别,也不知道怎么把环境从一个机器迁移到另一台机器。
3.1 创建一个干净环境的完整姿势
创建环境用conda create,基础命令是:
conda create -n myenv python=3.9这条命令会创建一个名为myenv的环境,并安装Python 3.9。关键参数有:
-n或--name:指定环境名称。-p或--prefix:指定环境路径,适合想在项目目录里直接创建环境的场景。python=3.9:指定Python版本。如果不指定,默认会沿用base环境的Python版本。-y:自动确认,跳过Proceed ([y]/n)?的询问。-c或--channel:指定额外的channel,比如conda create -n myenv python=3.9 -c conda-forge。--clone:克隆已有环境,用于环境复制。
我推荐在创建环境时就显式指定Python版本,不要偷懒。因为不同项目对Python版本的要求可能不同,隐式依赖base环境的版本很容易在某一天突然踩坑。
3.2 环境路径与激活:activate 和 source activate 的区别
环境创建成功后,所在位置在Conda目录的envs子目录下,默认路径(Windows)是C:\Users\用户名\anaconda3\envs\myenv,Linux/macOS是/home/用户名/anaconda3/envs/myenv。
激活环境的官方命令是:
conda activate myenv老教程里常看到source activate myenv,这是Conda 4.4之前的老用法,现在不推荐。如果你执行了conda activate却提示需要先运行conda init,参考前面第1.4节处理。
激活后,终端提示符前面会出现(myenv),此时python、pip、conda install都作用于当前环境。有一个常被忽略的点:不管你激活没激活环境,conda install装的包默认都是装到当前激活的环境里的;如果没激活任何环境,就装到base里。所以提醒一句,别在base环境里乱装东西,长时间累积依赖很容易冲突。
3.3 删除环境的两种方式
删除环境的常规命令是:
conda env remove -n myenv也可以用conda remove -n myenv --all,效果类似。区别在于conda remove更强调"移除某个环境中的包",而conda env remove是整环境删除。如果你只想删除环境里的某个包,用:
conda remove -n myenv numpy删除环境前建议先确认没有进程正在使用该环境,否则可能出现文件占用导致删除不干净的情况。Windows上如果删除失败,先关掉所有使用该环境Python的终端和IDE。
3.4 环境导出、复现与离线迁移
这是基础配置命令里特别实用但是容易被忽略的一块。
- 导出当前环境的包列表(含版本号):
conda env export > environment.yml- 根据环境文件重建环境:
conda env create -f environment.yml- 只导出显式安装的包(不含依赖):
conda env export --from-history > environment.yml--from-history这个参数强烈推荐,导出的文件更简洁,而且重建后兼容性更好。因为完整导出的文件里全是精确版本号和构建标识,换台机器重建时经常遇到某个包在特定平台下找不到的情况。
跨平台迁移(比如Linux离线迁移到Windows)最稳的方案是用conda-pack:
conda install -c conda-forge conda-pack conda pack -n myenv执行完会生成一个myenv.tar.gz文件,拷贝到目标机器上解压,然后手动把解压目录放到Conda的envs目录下,或者在目标机器的Shell里设置环境路径。这样就不需要目标机器联网去重新解析依赖了。
4. 日常装包的核心命令与 conda/pip 的分工边界
很多人用Conda装包时就是无脑conda install xxx,遇到Conda里搜不到就切pip install xxx,再遇到写着"Useconda install"的报错就懵了。搞清楚两者边界,日常效率会提升一大截。
4.1 conda install 的常用参数
conda install的完整参数很多,但日常高频的是这几个:
# 安装指定包 conda install numpy # 指定channel安装 conda install -c conda-forge jupyterlab # 指定版本范围 conda install "numpy>=1.20,<2.0" # 安装多个包 conda install numpy pandas scipy # 自动确认,跳过询问 conda install -y numpy # 只从某个channel安装,不混其他channel conda install -c pytorch --override-channels pytorch torchvision--override-channels这个参数特别有用,它表示安装时忽略其他所有channel,只用-c指定的那个。这样能避免某些包从不同channel混装导致版本冲突。之前有次装PyTorch,CPU版和GPU版的包来历不同,环境里NCCL相关的库版本对不上,后面就是用--override-channels重新装了一遍才解决。
更新和卸载对应的命令是:
conda update numpy # 更新包 conda update --all # 更新当前环境所有包(慎用,可能引发连锁变动) conda remove numpy # 卸载包 conda search numpy # 搜索可用版本 conda list # 列出当前环境所有包4.2 conda install 和 pip install 的核心区别
两者的区别,用一句话总结:conda是包管理器和环境管理器,pip只是包管理器。
具体展开来说:
- 包来源:conda从channel(如Anaconda官方源、conda-forge)拉取预编译包,pip从PyPI拉取包。conda里的包自带依赖和必要的动态库(比如MKL、CUDA相关库),pip则更多依赖系统环境。
- 依赖解析:conda会做完整的依赖求解,包括非Python的动态库;pip默认只解析Python包的依赖,对动态库不管。
- 环境隔离:conda创建独立环境后,
conda install只影响当前环境;pip虽然也能装到虚拟环境里,但不会管环境外的库。 - 安装位置:conda装到envs对应目录下的
Lib/site-packages(Windows)或lib/pythonX.X/site-packages(Linux),pip装到当前Python的site-packages。混用时注意顺序,否则容易出现"conda装了A,pip又装了另一个A覆盖掉"的问题。
我在实际项目里常用的组合策略是:
- 能用conda装的优先conda装,尤其是带动态库的科学计算包(numpy、scipy、pandas、opencv)。
- conda里搜不到、或者conda版本太旧导致安装失败的包,再用pip装。
- 不要在激活环境之前就pip install,否则会装到base里去。
- 不要在同一环境里混合使用 conda 和 pip 管理同一个包,比如
conda install numpy和pip install numpy来回倒腾,很容易让环境处于一种"pip list里有、conda list里也有但版本对不上"的诡异状态。
4.3 手动指定版本/渠道的一个实操案例
举个TensorFlow的例子。我用conda create -n tf python=3.9建好环境之后,直接pip install tensorflow-gpu很快就能装上,但用conda install tensorflow-gpu往往需要解析很久,而且容易拉着CUDA、cuDNN的版本变动。这里就体现了"conda处理复杂科学栈依赖更稳,pip装纯Python包更简单"的特点。
如果你在Windows上用Conda装TensorFlow GPU版,我建议先用conda create -n tf python=3.9创建环境,再pip install tensorflow和conda install cudatoolkit=11.2 cudnn=8.1分开装。这样Conda负责CUDA运行时库,pip负责TensorFlow本体,两者各管各的,版本冲突反而少。版本对照表可以查官网,这里提醒一句:一定要先确认Python版本、CUDA版本、TensorFlow版本三者匹配,再动手装,否则装完才发现不兼容就得重来。
5. 高频报错排查与手动补链:从报错到通路的完整链路
基础配置命令里,最有价值的部分其实是排查那些高频报错。这里我把前面零散提到的、以及日常最常见的问题汇总一下,给出完整排查链路和解决方案。
5.1 'conda' 不是内部或外部命令 的完整排查链路
第一条路:先确认conda.exe在不在。
检查 C:\Software_Install\Anaconda\Scripts\conda.exe 是否存在如果不存在,可能是安装目录不对,重新安装或找到真实路径。
第二条路:确认环境变量里有没有Conda的目录。
在CMD里运行:
echo %PATH%看输出里有没有C:\Software_Install\Anaconda\Scripts。没有的话,按第1.2节手动添加。
第三条路:如果环境变量没问题但还是找不到,看看是不是开了新的终端窗口没生效。Windows的PATH修改不会自动同步到已打开的终端,必须重启终端。
第四条路:如果你明明是刚装好的Anaconda,但在CMD里跑不了,那也可能是安装时没有勾选"Add Anaconda to my PATH environment variable"。这种情况手动加环境变量即可。
注意:我一般不建议安装时勾选"Add to PATH"选项,因为它会把Python路径也加到系统环境变量里,容易和其他Python安装冲突。推荐的做法是装完只靠Anaconda Prompt使用,或者手动往用户PATH里加
Scripts和根目录,这样可控性更强。
5.2 conda activate 提示 run 'conda init' before 'conda activate'
这个报错在Linux/macOS上最常见。处理链路是:
# 1. 确认conda命令本身能用 conda --version # 2. 初始化shell conda init bash # 或 zsh / fish # 3. 重新加载配置 source ~/.bashrc # 4. 再激活目标环境 conda activate myenv如果conda init bash跑完了还是不行,检查~/.bashrc里是否真的多了conda块,以及当前Shell是否加载了它:
grep conda ~/.bashrc source ~/.bashrc && conda activate myenv还有一个细节:有些同学用的是zsh但配置写到了bashrc里,或者反过来,会导致当前Shell加载不到初始化脚本。执行echo $SHELL确认当前Shell,再选择对应的conda init参数。
5.3 Solving environment 卡死 / MemoryError
solving environment一直转圈,常见场景和对应解法:
- 场景一:默认源在国外,网络不稳。解法:换国内镜像源(参考第2节)。
- 场景二:环境里已有大量包,依赖解析组合爆炸。解法:
conda clean -a清理缓存,或新建一个干净环境重装。 - 场景三:channels配置混乱,多个channel里的包版本互相干扰。解法:
conda config --set channel_priority strict,或精简channels。 - 场景四:系统内存不足。错误信息可能是
MemoryError: The conda process ran out of memory. Increase system memory,解法:关掉大型应用释放内存,或给Conda的求解器指定更保守的算法:
conda config --set solver classic另外,conda config --set aggressive_update_packages []能避免Conda在安装时顺手更新一些无关包,减少解析范围。
5.4 VSCode 里识别到两个 Conda 环境
之前说了VSCode这个问题,这里再补充一个排查思路:先执行conda env list,看看你实际有哪些环境。如果两个环境名称一模一样,极可能有多个conda安装。再执行which conda(Linux/macOS)或where conda(Windows),确认当前终端用的是哪个conda。VSCode如果检测到两个conda,通常是因为它的Python扩展自动扫描了多个conda安装路径。解决方法是让人工指定的解释器路径优先,而不是让VSCode自动扫描。
5.5 conda 虚拟环境路径查不到
有同学用conda env list找不到之前建的环境,但环境文件确实存在。检查一下当时创建时是否用了-p指定了自定义路径。conda create -p /path/to/envname创建的环境不会出现在默认的envs目录里,需要conda activate /path/to/envname来激活,或者把路径加入envs_dirs:
conda config --append envs_dirs /path/to/envs这样下次conda env list就能看到了。
5.6 Windows 下 JupyterLab 的 SSL 报错处理
热词里有一条很有代表性:Win11下conda 配置 jupyterlab提示ssl.SSLError {ASN1: not_enough_data}。这个报错通常和pyopenssl、certifi版本不匹配有关。处理方式:
conda install -c conda-forge pyopenssl certifi # 或者 pip install --upgrade pyopenssl certifi如果还不行,检查是不是环境里同时存在多个OpenSSL库,必要时重装openssl。这个问题在很多Windows机器上出现过,原因多数是conda环境里的 OpenSSL 动态库和系统库版本冲突,重新统一安装一遍就能解决。
6. 跨平台安装的几个细节:Ubuntu、openEuler 与 Windows 的共性和差异
很多人用Conda是在Ubuntu服务器上,或者在 openEuler 这类国产Linux发行版上。跨平台的Conda安装和基础配置,大体流程一致,但有几个细节不同。
6.1 Linux 下安装 Conda 后的 root 权限问题
在Ubuntu上安装Miniconda时,官方安装脚本默认会把Conda装到~/miniconda3,不会要求root权限。但如果你用了sudo安装,装完会发现base环境的所有文件都是root用户的,普通用户用不了。处理方式:
# 把安装目录的属主改成当前用户 sudo chown -R $USER:$USER ~/miniconda3另外,Ubuntu系统的默认Shell是bash,直接conda init即可。如果服务器默认登录Shell是sh或dash,那么需要手动conda init bash之后,再. ~/.bashrc。
6.2 openEuler 上安装 Conda 的几个坑
openEuler 这类系统默认Shell往往也是bash,正常安装流程一样。但有几个容易踩的坑:
- 系统里可能已经存在
/usr/bin/python3或/usr/bin/conda,导致PATH冲突。安装Miniconda时用脚本安装器,会提示说检测到已有Python,实际上影响不大,关键是激活conda时确认which python指向的是conda环境里的Python。 - openEuler 的glibc版本较老时,新版Miniconda可能启动报错。这类问题建议卸载后换用Anaconda官方提供的兼容旧glibc的发行版,或者升级系统组件。具体看系统支持情况。
- 在openEuler等系统上安装后,自动初始化时可能需要手动执行
source ~/.bashrc,否则当前终端不生效。别以为conda init跑完当前终端就能用,重启终端或重新加载配置是必须的。
6.3 Windows 与 Linux 环境迁移时最容易忽略的问题
如果你在Linux上建好一个环境,想把整个环境目录拷贝到Windows上用,直接拷贝是会失败的,因为Conda环境内部包含大量指向Linux路径的可执行脚本和硬编码路径。正确做法是:
- 用
conda env export导出环境文件,到Windows上用conda env create -f environment.yml重建。 - 或者用
conda pack打包,但要注意打包生成的包只能用于相同操作系统和相同架构的机器。跨平台(Linux到Windows)必须走环境文件重建的路。 - 如果环境里有大量通过pip安装的包,
conda env export导出的文件里也会包含pip部分,重建时Conda会先建Conda包,再在环境里调pip装其他包。此时需要目标机器有PyPI的访问权限。
7. 我自己平时最依赖的三条配置习惯
这几条不算教程里的标准内容,是我自己踩过几次坑之后沉淀下来的操作习惯,分享出来供参考。
第一,新机器装完Conda之后,第一件事不是建环境,而是先配好源和channel优先级。默认源在国内用着太痛苦,等卡住一次再想起来配源就晚了。
第二,建环境时我会顺手把包管理工具也装好,并为pip配置国内镜像:
conda create -n myenv python=3.9 pip # 激活后给pip配置清华源(一次性设置) pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple这样后面用pip装纯Python包时,不会被PyPI的慢速折磨。
第三,定期清理缓存和未使用的包。Conda用久了之后,pkgs目录里会有大量缓存的安装包,占用空间很大。执行conda clean -a可以清理所有缓存;conda clean -p只清除未使用的包。这个操作在我用Conda半年之后帮我腾出了将近20GB的磁盘空间。
第四,使用conda config --set auto_activate_base false。默认情况下每次打开终端都会自动激活base环境,时间长了终端启动变慢,而且容易误装在base里。关掉自动激活后,需要哪个环境就手动conda activate,干净利落。
最后再分享一个小技巧:如果你不确定某条conda命令的参数怎么用,直接conda <子命令> --help,Conda的help信息写得非常清楚,比网上很多过时的教程靠谱。这篇文章里提到的命令,覆盖了90%以上的日常需求,剩下的边角问题,看看help基本都能自己解决。