Inicialmente fiquei muito feliz em ver meu prompt de terminal prefixado (venv)
porque estava dentro da pasta onde estou aprendendo python e, nessa pasta, criei uma ./venv
pasta para armazenar meu ambiente virtual, que parecia ter conseguido ativar.
Hoje estou horrorizado ao descobrir que ele agora prefixa meu prompt (venv)
literalmente em qualquer outro lugar que eu vá em minha máquina.
Questões
- Este é o comportamento padrão/esperado quando você cria um ambiente virtual? Por que? Essas outras pastas nem são projetos python.
- como faço para parar a loucura/restringir o conhecimento do python-env apenas aos diretórios relevantes?
echo $PS1
dá:
(venv) \u@\h \[\]\w\[\] \[\]$git_branch\[\]$git_dirty\[\]$
e grep -i PS1 ~/.*.rc* ~/.*bash* ~/.profile
dá:
/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\]\$ "
Também não me lembro de ter editado nenhum arquivo como bash_profile .bashrc .profile etc.
Obrigado!
Atualizar
Não sei se ajuda, mas ocorreu-me verificar meu histórico em busca de algo relacionado ao 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"
Algum desses comandos estava errado?
O comando:
é o que está atualizando seu prompt (é apenas um conjunto de comandos shell, então fique à vontade
cat
para ver especificamente o que está fazendo) para mostrar o nome do virtualenv, e ele permanecerá em seu prompt até você descarregá-lo com:A razão para isso é que seu ambiente (ou seja, seu PATH) ainda aponta para o interpretador python dentro do seu virtualenv, independentemente do diretório em que você se encontra.
Observe que o
deactivate
comando do seu virtualenv estará no mesmobin/
diretório do interpretador.