Dar*_*lar 7 bash ps1 python-venv anaconda
我在项目文件夹中创建了一个 anaconda 环境,指定了 -p 选项的路径,即不在默认的 anaconda3/envs 文件夹中:
conda create -p venv
Run Code Online (Sandbox Code Playgroud)
问题是当我激活该环境时,终端中的 bash 前缀太长,即将环境的整个路径添加到提示中:
(/path/to/the/environment/venv) user@machine: ~/path/to/environment/$
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,意味着缩短它或从提示中删除前缀?
我的 $PS1:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
Run Code Online (Sandbox Code Playgroud)
mer*_*erv 13
自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}) '
Run Code Online (Sandbox Code Playgroud)
对您的情况有所帮助的一种选择是仅使用{name}变量
conda config --set env_prompt '({name}) '
Run Code Online (Sandbox Code Playgroud)
这将仅显示 env 的文件夹名称。例如,你的例子是
(venv) user@machine: ~/path/to/environment/$
Run Code Online (Sandbox Code Playgroud)
请注意,这将使当base env 处于活动状态时,提示将显示(anaconda3)而不是(base); 否则,其他命名的环境应该像往常一样出现。
如果你真的不能忍受,你可以运行basename {default_env}以获得与{name}未命名环境相同的结果并且仍然保留base. 那是,
conda config --set env_prompt '(\$(basename {default_env})) '
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1358 次 |
| 最近记录: |