bash - Anaconda 环境 bash 前缀太长
问题描述
我在使用 -p 选项指定路径的项目文件夹中创建了一个 anaconda 环境,即不在默认的 anaconda3/envs 文件夹中:
conda create -p venv
问题是当我激活那个环境时,终端中的 bash 前缀太长了,即将环境的整个路径添加到提示符之前:
(/path/to/the/environment/venv) user@machine: ~/path/to/environment/$
有没有办法解决这个问题,意味着让它更短或从提示中删除前缀?
我的 $PS1:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
解决方案
Conda 提示自定义
从Conda v4.6.0开始env_prompt
,提供了用于定制 PS1 更改的配置选项。这是描述:
$ conda config --describe env_prompt
# # 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}) '
对您的情况有帮助的一种选择是仅使用{name}
变量
conda config --set env_prompt '({name}) '
这将仅显示环境的文件夹名称。例如,你的例子是
(venv) user@machine: ~/path/to/environment/$
请注意,这将使得当基本环境处于活动状态时,提示将显示(anaconda3)
而不是(base)
; 否则,其他命名的环境应该像往常一样出现。
如果您真的无法忍受,您可以运行basename {default_env}
以获得与未命名环境相同的结果{name}
并仍然保留base
。那是,
conda config --set env_prompt '(\$(basename {default_env})) '
推荐阅读
- .htaccess - 使用现有规则使用 htaccess 删除尾部斜杠
- postgresql - 从 Flutter 与 Postgresql 中的过程交互
- python - 给定一个 numpy 矩阵,生成结果联合分布的最有效方法是什么?
- java - 我可以根据负载在运行时在 kafka 中发送不同主题的消息吗?
- apache-flink - Apache Flink - 匹配多种模式
- vaadin - 非缓冲模式退出编辑器中的 Vaadin 14 Grid
- leaflet - 标签 z 顺序/可见性无法正常/可预测地工作
- android - 有没有办法不让您的应用程序从虚拟环境应用程序(如虚拟 xposed)启动/打开
- java - 如何调试使用 Keycloak 的 Angular/Java/Spring 应用程序?
- java - 使用 Selenium 和 Java 获取可滚动表中所有元素的列表