Eu uso virtualenv
e virtualenvwrapper
gerencio com meus projetos Python, mas trocar para um ambiente virtual diferente ao entrar nas pastas do projeto é enfadonho e fácil de esquecer, então redefino o cd
comando assim:
use_virtualenv() {
if [ -e .virtualenv ]; then
name=$(cat .virtualenv)
if [ $VIRTUAL_ENV ]; then
if [ "$name" = "$(basename $VIRTUAL_ENV)" ]; then
return
fi
fi
workon $name
fi
}
cd () {
builtin cd "$@" && use_virtualenv
}
# Call the function on .zshrc loaded
use_virtualenv
Quando tenho um projeto que usa um ambiente virtual, por exemplo TORNADO
, eu o gravo em um arquivo chamado .virtualenv
na pasta raiz do projeto:
cd /my/project/folder
echo TORNADO > .virtualenv
toda vez que eu entro nesta pasta por cd
, o virtualenv será automaticamente trocado para TORNADO
, nunca se preocupe em digitar workon
novamente = D
Nota. Este truque está funcionando apenas para zsh, se você estiver usando outros shells como o bash, altere o código para caber no seu.