在 virtualenv 激活时,有什么方法可以更改提示中显示的名称吗?
username@host:~$ python3 -m venv venv
username@host:~$ source venv/bin/activate
(venv) username@host:~$
但我需要它显示为这样的东西:
username@host:~$ python3 -m venv venv
username@host:~$ source venv/bin/activate
(some_arbitrary_name) username@host:~$
更新: 感谢您的回答。提示名称创建后无法更改,但是,有一种方法可以在提示中显示除文件夹名称之外的任意名称:
username@host:~$ python3 -m venv .venv --prompt some_arbitrary_name
username@host:~$ source venv/bin/activate
(some_arbitrary_name) username@host:~$
venv 名称与您在其中创建它的文件夹相同。 用你喜欢的名字创建一个 venv
$ python -m venv some_arbitrary_name
$ . ./some_arbitrary_name/bin/activate
(some_arbitrary_name)$
提示已在
bin/activate
脚本中修改,因此只需更改添加(venv)
的行即可。它看起来像这样:
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
PS1="(venv) ${PS1:-}"
export PS1
fi
只需将
(venv)
更改为您选择的名称即可。
请注意,在最新的 venv 版本中,上面的代码如下所示:
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1-}"
if [ "x" != x ] ; then
PS1="() ${PS1-}"
else
PS1="(`basename \"$VIRTUAL_ENV\"`) ${PS1-}"
fi
export PS1
fi
您仍然可以更换
(`basename \"$VIRTUAL_ENV\"`)
使用简单的字符串,例如
(my_venv)
虽然这是不可能的,但我想不出您可能想要显示与虚拟环境名称不同的名称的场景。如果您想重命名虚拟环境,可以执行以下操作。
默认情况下,virtualenv 不支持环境重命名。更安全的做法是删除 virtualenv 目录并使用正确的名称创建一个新目录。您可以通过以下方式执行此操作:
Activate your virtualenv: source vnev/bin/activate
Create a requirements.txt of currently installed packages: pip freeze > requirements.txt
Delete the misspelled virtualenv: rm -r vnev/
Create a new virtualenv with correct name: virtualenv venv
Activate new virtualenv: source venv/bin/activate
Install packages from requirements.txt: pip install -r requirements.txt