By

Instalando e configurando virtualenv(wrapper)

Python Logo


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. :D

3 Responses to Instalando e configurando virtualenv(wrapper)

  1. __B__ says:

    Cara, excelente post. Objetivo e funcional. Estava lendo um pouco sobre virtualenv e etc pra deixar de ser uma amador em desenvolvimento nessa plataforma, e ai o seu site estava disponibilizados no site oficial do virtualenvwrapper nos "related"!

    http://www.doughellmann.com/projects/virtualenvwrapper/

    Tambem curti o seu post sobre buildout. Obrigado por ter investido o seu tempo para ajudar os outros. :)

  2. Davi Lima says:

    Muito bom mesmo. Estou adotando em meus projetos a partir deste post. VLW []s

  3. Davi Lima says:

    Apos seguir os passos indicados, no OS/X Lion, obtive este erro ao iniciar novos terminais (especificamente ao executar o virtualenvwrapper.sh):

    ValueError: I/O operation on closed file
    http://pastebin.com/ZNQZipEw

    Apesar do erro, os comandos ficam disponiveis. Consigo criar projetos, porem obtenho novos erros: http://pastebin.com/Kr53PFL5

    Parece problema de permissao neh? Faz ideia do que precisar acertar? Obrigado!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre prompt="" escaped="">