如何自定义 virtualenv shell 提示

Cer*_*rin 5 python bash virtualenv

您如何定义在激活Python 虚拟环境时使用的自定义提示?

我有一个 bash 脚本,用于激活调用特定Fabric命令时使用的 virtualenv 。我希望 shell 提示说类似“(fab)”这样的东西,这样我就可以很容易地将它与我打开的其他 shell 区分开来。按照这个例子,我试过:

#!/bin/bash
script_dir=`dirname $0`
cd $script_dir
/bin/bash -c ". .env/bin/activate; PS1='(fab) '; exec /bin/bash -i"
Run Code Online (Sandbox Code Playgroud)

但提示没有变化。我究竟做错了什么?


Tom*_*Tom 5

提示符在 virtualenv 的激活脚本中设置(位于 virtualenv 下的 bin 文件夹中)。如果您只想更改几次提示,可以在调用 activate 之前设置一个环境变量(确保在相应的 deactivate 文件中清除它)。如果您只是希望提示符始终不同,您可以在 activate 中的行中执行此操作,如下所示

set "PROMPT=(virtualenvname) %PROMPT%"
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 virtualenvwrapper,则也可以在 postactivate 和 postdeactivate 脚本中执行所有这些操作。