最初,我很高兴看到我的终端提示符带有前缀,(venv)
因为我位于正在学习 python 的文件夹内,并且在该文件夹中,我创建了一个./venv
文件夹来保存我的虚拟环境,我似乎能够激活该虚拟环境。
今天,我惊讶地发现它现在(venv)
在我的机器上的任何其他地方都为我的提示符添加了前缀。
问题
- 这是您创建虚拟环境时的标准/预期行为吗?为什么?这些其他文件夹甚至不是 python 项目。
- 如何停止疯狂/将 python-env 意识限制为仅相关目录?
echo $PS1
给出:
(venv) \u@\h \[\]\w\[\] \[\]$git_branch\[\]$git_dirty\[\]$
并grep -i PS1 ~/.*.rc* ~/.*bash* ~/.profile
给出:
/home/me/.bashrc: PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
/home/me/.bashrc: PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
/home/me/.bashrc: PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
/home/me/.bashrc:export PS1="\u@\h \[$txtgrn\]\w\[$txtrst\] \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\$ "
我也不记得编辑过任何文件,例如 bash_profile .bashrc .profile 等。
谢谢!
更新
我不知道它是否有帮助,但它碰巧检查了我的历史记录以查找与 venv 相关的任何内容:
1034 python3 -m venv venv
1035 python3 -m venv ./venv
1037 rm -rf venv/
1040 python3 -m venv ./venv
1042 ll venv/
1043 ll venv/bin/
1044 rm -rf venv
1045 python3 -m venv --without-pip ./venv
1046 ll venv/bin/
1047 source ./venv/bin/activate
1085 history grep "venv"
1086 history | grep "venv"
这些命令有错误吗?
命令:
是什么正在更新您的提示符(它只是一组 shell 命令,因此请随意查看
cat
它具体在做什么)以显示 virtualenv 的名称,并且它将保留在您的提示符上,直到您使用以下命令卸载它:原因是你的环境(即你的 PATH)仍然指向 virtualenv 中的 python 解释器,无论你发现自己位于哪个目录。你可以通过运行如下命令来查看这一点:
请注意,
deactivate
virtualenv 的命令将bin/
与解释器位于同一目录中。