激活 Python venv 时如何不更改 shell 提示符?

Ant*_*ong 7 python3

我创建了一个像这样的 venv:

python3 -m venv .venv
Run Code Online (Sandbox Code Playgroud)

当我激活它时,shell 提示符会改变。

antkong@konga-mbp ~/dev/my-project (git-branch-name)
$ source .venv/bin/activate
(.venv) konga-mbp:my-project antkong$
Run Code Online (Sandbox Code Playgroud)

如何保持提示相同?

ank*_*tis 8

Bash shell 的提示符由PS1变量控制。

\n

activate靠近底部 \xe2\x80\x94 的脚本 \xe2\x80\x94 在使用 venv \ 的名称之前将其旧值保留在_OLD_VIRTUAL_PS1变量

\n
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then\n    _OLD_VIRTUAL_PS1="${PS1:-}"\n    if [ "x(gearshift3.8) " != x ] ; then\n    PS1="(gearshift3.8) ${PS1:-}"\n...\n
Run Code Online (Sandbox Code Playgroud)\n

因此,要立即恢复到旧版本PS1,请输入:

\n
export PS1="$_OLD_VIRTUAL_PS1"\n
Run Code Online (Sandbox Code Playgroud)\n

您可以编辑脚本并为所有未来的venvactivate激活禁用上述条件块,方法是将其第一行替换为:

\n
if false; then\n
Run Code Online (Sandbox Code Playgroud)\n

如果要禁用所有后续venv激活的提示(在 shell 会话期间),请为在块条件下检查的变量设置一些值:

\n
export VIRTUAL_ENV_DISABLE_PROMPT=1\n
Run Code Online (Sandbox Code Playgroud)\n

最后,如果您希望此行为在未来的所有控制台会话中持续存在,请将以上行添加到您的~/.bashrc.

\n