Eu uso o virtualenv o tempo todo, para cada novo projeto, para cada lib ou projeto que testo. Eu também uso ipython e ipdb o tempo todo (e django quase o tempo todo).
Problema: ipython, ipdb e django não são fornecidos pela virtualenv e sua instalação demorou um pouco, o que interrompeu meu fluxo quando preciso deles.
Felizmente, o mitsuhiko lançou o virtualenv-tools ( https://github.com/fireteam/virtualenv-tools ) que permite atualizar o caminho de um virtualenv copiado.
Alguns pequenos scripts de shell mais tarde e aqui está o resultado:
mkve ()
{
# check that we have everything we need installed
[ -e "$(which pip)" ] || (echo "installing pip"; sudo aptitude install python-pip)
[ -e "$(which virtualenv)" ] || (echo "installing pip"; sudo pip install virtualenv)
[ -e "$(which virtualenv-tools)" ] || (echo "installing virtualenv-tools"; sudo pip install virtualenv-tools)
# check that we have the virtualenv ready, otherwise build it
if [ ! -e ~/.myvirtualenv/ ]
then
virtualenv --distribute ~/.myvirtualenv/
~/.myvirtualenv/bin/pip install ipdb django django_pdb django_extensions django_debug_toolbar
fi
# do the actual stuff
cp -r ~/.myvirtualenv/ ve
virtualenv-tools --update-path $(pwd)/ve ve
source ve/bin/activate
}
Basta digitar mkve , ele irá verificar se você tem tudo o que é necessário instalado e então construir o virtualenv se não estiver lá, instalar os pacotes nele e então copiar este virtualenv para seu diretório atual, atualizar seus caminhos e ativá-lo.
É ainda mais rápido do que construir um novo virtualenv (uma vez que o virtualenv global é criado).