在 bash 提示符下使用 shell 变量 PS1 格式化 python 虚拟环境名称

Format python virtual environment name with shell variable PS1 on bash prompt

我正在尝试使用 shell 变量 PS1 自定义 bash 提示。 如何访问 python 虚拟环境名称以应用颜色格式?

PS1 设置为:\u@\h in \W $

我希望输出为 user@host in ~ $

但我得到 (base) user@host in ~ $(base) (venv) user@host in ~ $ 使用名为 venv 的虚拟环境时)

如果可能,只显示 (venv) 而不是 (base) (venv) 也很好,或者是否有任何用例 (base)-additon 有意义?

activate 脚本一次性将虚拟环境的名称硬编码为 PS1 的当前值。您可以通过将 VIRTUAL_ENV_DISABLE_PROMPT 添加到您的环境中来禁用此功能(任何非空值都可以),并使用 $(basename $VIRTUAL_ENV) 的值来自定义您喜欢的提示。