Instalando e configurando virtualenv(wrapper)
Se você programa em Python, principalmente em projetos que tem várias dependências, já deve ter pensando duas vezes antes de instalar vários pacotes Python no seu sistema. Imagine como seria bom se você pudesse ter um interpretador de Python separado para cada projeto seu, com as devidas dependências deles instaladas e o Python do seu sistema limpinho, só com o que ele realmente precisa ter.
VirtualEnv
Pare de imaginar coisas, isso EXISTE! E se chama virtualenv. A instalação é simples. Antes de tudo, caso não tenha o pip instalado, instale-o com:
sudo easy_install pip
E depois, o virtualenv propriamente dito:
sudo pip install virtualenv
Agora você já pode criar e ativar ambientes Python virtuais usando a sintaxe:
virtualenv --no-site-packages nomedoambiente
source nomedoambiente/bin/activate
O primeiro comando cria um ambiente virtual numa pasta chamada “nomedoambiente” totalmente independente do Python do sistema e o segundo ativa o mesmo. Para desativar é só usar:
deactivate
VirtualEnvWrapper
O único problema do virtualenv, pelo menos na minha opinião, é a localização dos ambientes e a maneira como eles são ativados. É muito chato ter que ficar lembrando disso toda hora. E existe uma solução pra isso, chamada virtualenvwrapper. Ele organizar seus ambientes virtuais em uma única pasta e você pode ativar qualquer um deles apesar usando o comando: workon nomedoambiente. A instalação dele também é simples como a do virtualenv.
sudo pip install virtualenvwrapper
Porém, você precisará definir em qual pasta vão ficar os ambientes virtuais criados com ele. Além de carregá-lo sempre que abrir o terminal. Para isso, execute:
echo source /usr/local/bin/virtualenvwrapper.sh >> ~/.bashrc
echo export WORKON_HOME=~/.pythonenvs >> ~/.bashrc
Obs.: Lembre-se de criar o diretório .pythonenvs na home do seu usuário.
Agora é só fechar e abrir o terminal novamente e você já poderá criar um ambiente virtual usando o comando:
mkvirtualenv teste
Você também poderá copiar e deletar um ambiente usando, respectivamente:
cpvirtualenv teste teste_copia
rmvirtualenv teste_copia
E para instalar bibliotecas nos ambientes virtuais é só usar normalmente o pip (sem sudo).
Agora você pode ter um interpretador para cada projeto totalmente independente do seu Python global e com suas próprias bibliotecas.
VirtualEnvWrapper.Project (bônus)
Como se manipular ambientes virtuais com o virtualenvwrapper não fosse absurdamente fácil, existe um plugin para ele chamado virtualenvwrapper.project que além de manipular os Pythons virtuais também manipula projetos e liga eles com os ambientes virtuais. Os projetos ficam organizados em uma pasta definida no script e executando o comando “workon” com um projeto criado nele (usando o comando “mkproject”) ativa automaticamente o ambiente virtual e a pasta do projeto criado.
A instalação é NOVAMENTE muito simples e parecida com a do virtualenvwrapper:
sudo pip install virtualenvwrapper.project
echo export PROJECT_HOME=$HOME/Devel >> ~/.bashrc
Substitua “$HOME/Devel” para a pasta onde você queira que fiquem os projetos e lembre-se de criá-la antes de usar o virtualenvwrapper.project. E lembre-se de reiniciar o terminal também.
Criei novos projetos com o comando:
mkproject nomedoprojeto
Uma pasta com o nome “nomedoprojeto” será criada, assim como um ambiente virtual com o mesmo nome. Quando você usar o comando “workon nomedoprojeto” além de ativar o novo interpretador, o seu diretório corrente mudará automaticamente para a pasta do projeto, que está dentro da pasta definida logo acima.
O virtualenvwrapper.project só tem um pequeno problema: ainda não existe um comando para deletar um projeto inteiro. Eu mesmo farei isso assim que tiver tempo. \o/
Qualquer problema ou sugestão é só comentar!
Obrigado pessoal e até a próxima.

