首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何恢复到env_prompt参数在.condarc中的默认行为?

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

Stack Overflow用户
提问于 2020-02-07 23:46:39
回答 5查看 2.9K关注 0票数 3

如果在conda中创建带有--prefix标志的python环境并激活它,则整个路径显示了激活后的环境。这可能是一个很长的路径,因此conda-文件建议进行如下修复。

代码语言:javascript
运行
复制
conda config --set env_prompt '({name})'

问题是,当您deactivate这个环境时,就不会回到默认的行为。即使激活了基本环境,它也会向您展示基本环境的整个路径,而不仅仅是(base)

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

代码语言:javascript
运行
复制
(C:\Users\username\Documents\GitHub\test_flask\.env) C:\Users\username\Documents\GitHub\test_flask>

AFTER应用命令(conda config --set env_prompt '({name})'),如果我激活环境,它看起来如下所示:

代码语言:javascript
运行
复制
(.env) C:\Users\username\Documents\GitHub\test_flask>

太棒了!但是现在,如果我禁用这个环境和/或激活我的base环境,我得到以下内容:

代码语言:javascript
运行
复制
'(Anaconda3)'C:\Users\username\Documents\GitHub\test_flask>

然而,,我想回到

代码语言:javascript
运行
复制
'(base)'C:\Users\username\Documents\GitHub\test_flask>

那么,如何解决这个问题?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2020-02-07 23:46:39

解决方案

结果表明,您需要执行以下操作才能返回默认行为。在这里,我们在env_prompt文件中设置.condarc变量的默认行为,在禁用安装在非默认位置的环境之前也是如此。

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

代码语言:javascript
运行
复制
conda env create --prefix ./.env -f envirnment.yml

按照以下步骤激活和停用环境。

代码语言:javascript
运行
复制
# for activating env
conda config --set env_prompt '({name})'
conda activate ./.env


# for deactivating env
conda config --set env_prompt '({default_env})'
conda deactivate
conda activate base

env_prompt 变量描述

来源:文件

代码语言:javascript
运行
复制
### .condarc file (env_prompt section)

# # env_prompt (str)
# #   Template for prompt modification based on the active environment.
# #   Currently supported template variables are '{prefix}', '{name}', and
# #   '{default_env}'. '{prefix}' is the absolute path to the active
# #   environment. '{name}' is the basename of the active environment
# #   prefix. '{default_env}' holds the value of '{name}' if the active
# #   environment is a conda named environment ('-n' flag), or otherwise
# #   holds the value of '{prefix}'. Templating uses python's str.format()
# #   method.
# # 
# env_prompt: '({default_env}) '
票数 2
EN

Stack Overflow用户

发布于 2020-05-15 20:20:28

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

但我想出了另一种方法:您所需要的只是将一个全新的.condarc文件放到您的环境的根目录中。以你为例,C:\Users\username\Documents\GitHub\test_flask\.env\.condarc。这样的内容就足够了:

代码语言:javascript
运行
复制
env_prompt: '({name}) '

请注意,您可能需要激活您的环境两次(第一次加载本地.condarc,第二次使用它)。

这样做的另一种方法是,在所需的环境处于活动状态时,在conda config中使用conda config选项:

代码语言:javascript
运行
复制
conda activate .\.env
conda config --set env_prompt '({name})' --env

它似乎更健壮和方便,但这对我来说是不合适的,因为我是在makefile的上下文中工作。

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

票数 2
EN

Stack Overflow用户

发布于 2020-10-15 13:50:56

如果您只想返回到默认设置,请使用以下命令(如env_prompt部分所示)。在我的例子中,我的一个环境是活动的,所以我想它是一个全局变量。

代码语言:javascript
运行
复制
$ conda config --set env_prompt '({default_env}) '

注意,在新激活某些环境后,更改是可见的,例如:

代码语言:javascript
运行
复制
$ conda deactivate
$ conda activate base
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60122569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档