Anaconda 如何恢复到.condarc中env_prompt参数的默认行为?

Anaconda 如何恢复到.condarc中env_prompt参数的默认行为?,anaconda,config,conda,virtual-environment,Anaconda,Config,Conda,Virtual Environment,如果您在conda中使用--prefix标志创建python环境并将其激活,则激活后环境将以其整个路径显示。这可能是一条很长的路径,因此建议如下修复 conda config--设置环境提示“({name})” 问题是当您停用此环境时,您不会返回默认行为。即使激活基本环境,它也会显示基本环境的整个路径,而不仅仅是(基本) 例如,我在C-drive(Windows 10)上的路径Users/username/Documents/GitHub/test_flask/.env下安装了conda环境。

如果您在
conda
中使用
--prefix
标志创建python环境并将其激活,则激活后环境将以其整个路径显示。这可能是一条很长的路径,因此建议如下修复

conda config--设置环境提示“({name})”
问题是当您
停用此环境时,您不会返回默认行为。即使激活基本环境,它也会显示基本环境的整个路径,而不仅仅是
(基本)

例如,我在C-drive(Windows 10)上的路径
Users/username/Documents/GitHub/test_flask/.env
下安装了conda环境。
在应用命令(
conda config--set env_prompt'({name})
之前,激活后它如下所示:

(C:\Users\username\Documents\GitHub\test\u flask\.env)C:\Users\username\Documents\GitHub\test\u flask>
在应用命令(
conda config--set env_prompt'({name})
)后,
,如果我激活环境,它看起来像这样:

(.env)C:\Users\username\Documents\GitHub\test\u flask>
太好了! 但现在,如果我停用此环境和/或激活我的
base
环境,我会得到以下结果:

”(Anaconda3)“C:\Users\username\Documents\GitHub\test\u flask>
但是,我想回去

”(基本)C:\Users\username\Documents\GitHub\test\u>
那么,如何解决这个问题呢

解决方案 事实证明,您需要执行以下操作才能恢复默认行为。 在这里,我们在禁用安装在非默认位置的环境之前,再次在
.condarc
文件中设置
env_prompt
变量的默认行为

假设您在项目目录下创建python环境目录(
.env
),如下所示:

conda env create--prefix./.env-f envirment.yml
按照以下步骤激活和停用环境

#用于激活环境
conda config--设置环境提示“({name})”
康达激活。/.env
#用于停用env
conda config--设置环境提示“({default_env})”
康达酒店
康达激活基地
env_提示符的描述
变量

资料来源:

####.condarc文件(环境提示部分)
##环境提示(str)
##根据活动环境进行提示修改的模板。
##当前支持的模板变量有{prefix}、{name}和
##{default_env}'{prefix}是活动路径的绝对路径
##环境。”{name}是活动环境的基本名称
##前缀。”{default_env}保存{name}的值,如果
##环境是一个命名为conda的环境('-n'标志),或其他
##保存{prefix}的值。模板化使用python的str.format()
##方法。
# # 
#环境提示:“({default_env})”

有一种更为巴巴拉式的方法! “问题”来自.condrac文件

  • 删除文件是可行的(我的文件位于C:\Users\username,但如果您找不到它,它会提供其他位置)。下次您在.condarc文件中设置smth时,conda将重新调用它

  • 如果您已经使用了
    conda config
    命令,那么.condarc文件可能会计算除env_提示符“…”之外的其他行数。然后找到文件,打开它(记事本++运行良好)并删除受影响的行


  • 我的OS:Win10-64最新版本

    据我所知,使用
    conda env config vars
    的命令应该可以解决这些问题,但出于某种原因,我用这样的命令更改
    env_prompt
    变量没有效果

    但我找到了另一种方法:只需在环境的根目录中放入一个全新的
    .condarc
    文件即可。在您的例子中,
    C:\Users\username\Documents\GitHub\test\u flask\.env\.condarc
    。这些内容应该足够:

    env_prompt: '({name}) '
    
    请注意,您可能需要激活环境两次(第一次加载local.condarc,第二次应用它)

    另一种方法是在所需环境处于活动状态时,将
    --env
    选项与
    conda config
    一起使用:

    conda activate .\.env
    conda config --set env_prompt '({name})' --env
    
    这似乎是一种更加健壮和方便的方法,但对我来说并不合适,因为我是在makefile的上下文中工作的


    如果您使用命令
    conda info
    ,您可以看到哪些配置文件有效。

    如果您只想返回默认设置,请使用以下命令(如。在我的例子中,我的一个环境处于活动状态,所以我猜它是一个全局变量

    $ conda config --set env_prompt '({default_env}) '
    
    请注意,在新激活某些环境后,更改是可见的,例如:

    $ conda deactivate
    $ conda activate base