今天第一次玩 Python ,当装完 conda 后,命令行提示符前就多一个极不搭调
base
字符;一直追求完美的我是绝对不会允许这种事情发生的;于是就开始了探索之旅;先是上网上找文章,但找到的都是一些不如意、不本质、不优雅的解决方案;索性就自己研究吧;先后研究了 conda 的启动脚本、环境变量、命令选项等,终于找到了理想的完美方案;
目录
内容
1. conda 是什么
conda 是 Ptyhon 的 依赖管理器(包管理器) 和 Python环境管理器,即:conda = 依赖管理器 + 环境管理器;
如果你是前端开发的话,可以简单理解为 conda 相当于 前端的 npm + nvm;
2. 关闭命令行提示符前的 base
当激活 conda 环境后,conda 就会在命令行提示符前加入当前激活的环境名字,如下图所示:
这样的设计是很合理的,只是,不管你在命令行中用不用 python ,这个 conda 的提示符依然是坚定不移地显示那里,有强迫症的人(像我)就会这样认为:“终端又不是为你 python 一家使用的,为嘛一直挂你的牌子”
废话少说,直接上解决方案:
2.1. 解决方案1:通过命令配置关闭conda的环境提示
conda config --set changeps1 false
特点:
- conda 像以前一样正常使用,只是没有了环境提示;
说明:
-
config
是 conda 的配置命令 -
--set
是 给配置项设置值的选项 -
changeps1
是用来控制是否要将环境名字加入命令行的提示符的配置项;- 设置为
false
表示 不将环境名字加入命令行提示符; - 设置为
true
表示 将环境名字加入命令行提示符;
- 设置为
所以,如果再想把环境名字加入命令行提示符,执行以下命令即可:
conda config --set changeps1 true
2.2. 解决方案2:禁止 conda 自动激活 base 环境
通过查看 conda 的启动脚本可知,conda 会在 shell 启动时自动激动 base
环境,所以,如果不激活 conda 的环境,则提示符中就不会插入 conda 的环境名字;
可通过如下命令 禁用 conda 自动激活 base 环境:
conda config --set auto_activate_base false
说明:
-
auto_activate_base
是用来控制是否要在 shell 启动时自动激活 base 环境的配置项;- 设置为
false
表示 不自动激活 base 环境的配置项; - 设置为
true
表示 自动激活 base 环境的配置项;
- 设置为
所以,如果再想让 conda 自动激活 base,执行以下命令即可:
conda config --set auto_activate_base true
特点:
- conda 的环境不会自动激活;在这种状态下的 python 环境是未安装 conda 前的环境;
- 如果需要使用隔离的 python 环境,则需使用 conda 的激活命令来手动激活环境;
- 当 conda 的环境激活后,环境名字还会自动加入到命令行提符中;
2.3. 解决方案3:修改配置文件
通过 conda 的 config
命令(conda config --set
)设置的配置项都会保存在一个名叫 condarc
的配置文件中(在 Mac 或 Linux 系统下,这个配置的路径为 ~/.condarc
),所以我们也可以把下面的配置项直接写进这个配置文件中:
操作方法:
用任意文本编辑器打开 conda 的配置文件(在 Mac 或 Linux 系统下,这个配置的路径为
~/.condarc
);-
根据你想实现的效果,在文件末尾追求如下相应配置项
- 关闭conda的环境提示:
changeps1: false
- 开启conda的环境提示:
changeps1: true
- 禁止 conda 自动激活 base 环境:
auto_activate_base: false
- 开启 conda 自动激活 base 环境:
auto_activate_base: false
- 关闭conda的环境提示:
说明:更改配置文件方案 与 使用配置命令 conda config --set
的效果完全一样;
2.4. 其它方案
也可能直接更改 shell 或 conda 的启动脚本的逻辑来实现你想要的效果,这种比较灵活了,只是,如果你只是想关闭 conda 的环境名提示,没有必要、也不建议用这种方案,所以在这我就不再讲解该种方案的实现了;