Anaconda: 禁用提示符更改

60

当使用 Anaconda(Python 的安装程序)时,我可以通过以下方式切换到虚拟环境:

source activate my_env

这会改变我的提示符并在我的PS1开头添加(my_env)。

我尝试将export VIRTUAL_ENV_DISABLE_PROMPT=1添加到我的bashrc中,但没有帮助。

有任何想法吗?


8
这非常令人担忧。如果Anaconda认为它有权利以改变提示的方式编辑.bash_profile,那么它(错误地)认为自己还有哪些权利呢?结果发现,它还将内容添加到PATH的开头,例如重新定义了curl。糟糕!我把这当作恶意软件来对待。 - Adam Chalcraft
2
@AdamChalcraft 这似乎是过度反应。Anaconda是一个成熟且广泛使用的工具,这通常是非常有用的功能。如果用户迷失了自己所在的环境,他们可能会遇到奇怪的错误和损坏的依赖项。我也不认为这是一个惊喜,一个旨在在您的系统中创建隔离和自包含虚拟环境的工具将重新定义一些重要的可执行文件 - 否则它怎么能工作呢? - Neinstein
4个回答

101

5
有没有想法只针对基本环境来做到这一点? - Homero Esmeraldo
https://dev59.com/hVMI5IYBdhLWcg3w2_VT - Kyle Barron
有没有办法为PS2环境变量进行相同的更改? conda config --set changeps2 False 没有起作用 :( - Ian Tait
如果您因为 posh-git 的问题而偶然发现了这篇文章:https://dev59.com/mMLra4cB1Zd3GeqPGk91#70527216 - LoneCodeRanger
这对我没用。但是我使用了saza的答案,它有效:conda config --set auto_activate_base False - n13

27

17
我遇到了一个略微不同但相关的问题:如何避免默认情况下在每个终端窗口中激活基本环境。 解决方法如下: conda config --set auto_activate_base False 注意:只有在首先运行conda init后,此选项才起作用。

完成后,如何返回带有(base)的终端? - Bram
2
嘿@Bram,这很简单,只需运行conda activate,它将激活基本环境!干杯 - saza
1
正确答案 - 我经常使用终端,而且经常用于与Python无关的事情,所以我不能让conda无处不在。但是当我使用它时,我希望能看到它。这个解决方案可以做到这一点。 - n13

5

如果你和我一样,喜欢当非默认环境被激活时显示出来,但不想在其他情况下弄乱你的提示符(例如你因为某些与Python无关的原因而使用bash),那么请将以下摘录放置在你的~/.bash_profile文件中,在conda管理的部分之后:

# ahj - remove the default Python environment artifact "(base)" from prompt
PS1=$(echo "$PS1" | perl -pe 's/^\(base\)\s*//' )

1
虽然这个解决方案可能有效,但它只是治标不治本。我在想为什么它被标记为被接受的答案。 - normanius
我喜欢它仅过滤出基础内容的方式。如果我切换分支会怎样呢? - bjd2385

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接