如何在Fish Shell中将默认Python解释器改为系统自带版本
解决Fish Shell下默认Python切换为系统版本的问题
核心原因
你猜的没错,conda shell.fish hook确实会在每次启动Shell时,把conda的bin目录(也就是/home/cmaspi/miniconda3/bin)加到PATH的最前端,系统的/usr/bin被挤到后面,默认Python就变成conda base环境的了。直接用set -U PATH修改会被这段hook覆盖,所以得调整路径顺序或者改变conda的激活行为。
两种有效解决方法
方法一:强制把系统路径放到PATH最前面
打开你的~/.config/fish/config.fish,找到那段conda初始化的代码,在这段代码之后添加一行:
set -U prepend PATH /usr/bin
prepend参数会把/usr/bin插入到PATH的最开头,-U是全局生效的设置。这样每次Shell启动时,conda先把自己的路径加上,我们再把系统路径顶到最前面,which python3就会指向/usr/bin/python3了。
方法二:禁止conda自动激活base环境
如果平时不需要默认激活conda的base环境,可以直接关闭自动激活:
conda config --set auto_activate_base false
执行后重启Shell,PATH里就不会自动加入conda的路径,默认Python就是系统版本。需要用conda环境时,手动运行conda activate base或者其他环境即可。
验证是否生效
重启Shell后,执行以下命令确认:
which python3
如果输出是/usr/bin/python3,就说明设置成功了。
内容的提问来源于stack exchange,提问作者Chirag Mehta
相关产品推荐
相关产品推荐

