Todo desenvolvedor Python conhece (ou deveria conhecer!) o virtualenv. Para quem não conhece, um resumo: o virtualenv permite que você crie ambientes isolados para instalar os seus pacotes e executar o seu interpretador python buscando pacotes desse ambiente isolado. Por exemplo, você precisa instalar a versão de desenvolvimento de alguma biblioteca para testar algo, mas está comprometido com algo que foi desenvolvido usando a versão estável desse biblioteca. Uma alternativa é manter as duas versões em algum diretório e ficar adicionando o caminho delas ao interpretador Python antes de importá-las, mas garanto que logo você se cansará disso. Com o virtualenv, você poderia fazer o seguinte:
cd ambiente/estavel
source bin/activate
python sua_aplicacao_usando_a_biblioteca_estavel.py
cd ambiente/desenvolvimento
source bin/activate
python sua_aplicacao_usando_a_biblioteca_de_desenvolvimento.py
Para mais informações, eu sugiro a leitura do post do Osvaldo sobre o assunto.
Para facilitar ainda mais o uso do virtualenv, Doug Hellmann criou uma série de scripts chamada virtualenvwrapper. Para instalar:
easy-install virtualenvwrapper
Isso irá criar no seu PATH o arquivo virtualenvwrapper_bashrc (aqui, ele ficou em /usr/bin/virtualenvwrapper_bashrc).
Após isso, precisamos ativá-lo.
source /usr/bin/virtualenvwrapper_bashrc
Para tornar essas mudanças permanentes, adicione as duas linhas acima ao seu .bashrc.
Precisamos então criar o diretório $HOME/.virtualenvs, que será o nosso ‘$HOME’ de virtualenvs.
Agora, podemos criar os ambientes!
New python executable in biblioteca_teste/bin/python
Please make sure you remove any previous custom paths from your /home/walter/.pydistutils.cfg file.
Installing setuptools…………done.
(biblioteca_teste)
O (biblioteca_teste) significa que estamos usando o ambiente criado.
Para listar os ambientes disponíveis:
bagunca
biblioteca_teste
pylons
Para trocar de ambiente:
(bagunca)walter@stark:~$
Apagando um ambiente:
(bagunca)walter@stark:~$ workon
bagunca
pylons
Mais sobre o virtualenvwrapper na página do projeto
Muito bom o post!
Bem interessante, não conhecia esse.. Sempre usava shell-scripts customizados para isso. Mas o virtualenv realmente deixa bem mais fácil.
Valeu pela dica, só que eu precisei primeiro criar os diretórios .virtualenvs e depois dar um source no virtualenvwrapper_bashrc, pois reclamava que o diretório não existia.