今天看啥  ›  专栏  ›  科研者

关闭(取消)conda命令行提示符base的解决方案——关闭conda的环境名提示

科研者  · 简书  ·  · 2020-06-20 22:31

今天第一次玩 Python ,当装完 conda 后,命令行提示符前就多一个极不搭调 base 字符;一直追求完美的我是绝对不会允许这种事情发生的;于是就开始了探索之旅;先是上网上找文章,但找到的都是一些不如意、不本质、不优雅的解决方案;索性就自己研究吧;先后研究了 conda 的启动脚本、环境变量、命令选项等,终于找到了理想的完美方案;

目录

内容

1. conda 是什么

conda 是 Ptyhon 的 依赖管理器(包管理器) 和 Python环境管理器,即:conda = 依赖管理器 + 环境管理器;
如果你是前端开发的话,可以简单理解为 conda 相当于 前端的 npm + nvm;

2. 关闭命令行提示符前的 base

当激活 conda 环境后,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 ),所以我们也可以把下面的配置项直接写进这个配置文件中:

操作方法:

  1. 用任意文本编辑器打开 conda 的配置文件(在 Mac 或 Linux 系统下,这个配置的路径为 ~/.condarc );

  2. 根据你想实现的效果,在文件末尾追求如下相应配置项

    • 关闭conda的环境提示: changeps1: false
    • 开启conda的环境提示: changeps1: true
    • 禁止 conda 自动激活 base 环境: auto_activate_base: false
    • 开启 conda 自动激活 base 环境: auto_activate_base: false

说明: 更改配置文件方案 与 使用配置命令 conda config --set 的效果完全一样;

2.4. 其它方案

也可能直接更改 shell 或 conda 的启动脚本的逻辑来实现你想要的效果,这种比较灵活了,只是,如果你只是想关闭 conda 的环境名提示,没有必要、也不建议用这种方案,所以在这我就不再讲解该种方案的实现了;




原文地址:访问原文地址
快照地址: 访问文章快照