Instalando e configurando virtualenv(wrapper)
Autor: Douglas Camata | Publicado: 2010-08-20T16:55:00-07:00

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.VirtualEnvPare 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 pipE depois, o virtualenv propriamente dito: sudo pip install virtualenvAgora você já pode criar e ativar ambientes Python virtuais usando a sintaxe:virtualenv --no-site-packages nomedoambientesource nomedoambiente/bin/activateO 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:deactivateVirtualEnvWrapperO ú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 virtualenvwrapperPoré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 &gt;&gt; ~/.bashrc echo export WORKON_HOME=~/.pythonenvs &gt;&gt; ~/.bashrcObs.: 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 testeVocê também poderá copiar e deletar um ambiente usando, respectivamente: cpvirtualenv teste teste_copia rmvirtualenv teste_copiaE 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.projectecho export PROJECT_HOME=$HOME/Devel &gt;&gt; ~/.bashrcSubstitua "$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 nomedoprojetoUma 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. :D