Como criar sua instalação virtualenv personalizada que inclui os pacotes de sua escolha

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).