Olá,

No post anterior, expliquei de uma forma geral como monto minha estação de trabalho e desenvolvimento.

Hoje mostrarei como montar o ambiente python virtual para desenvolvimento.

Enfim o ambiente python :)

Para iniciarmos o ambiente, precisamos instalar alguns pacotes. Nos exemplos abaixo utilizarei o Debian como sistema operacional, e o aptitude como gerenciador de pacotes.

  1. Primeiro atualize o gerenciador de pacotes. sudo aptitude update && sudo aptitude upgrade
  2. Instale os pacotes de desenvolvimento.
sudo aptitude install build-essential libpq-dev python-dev python-setuptools python-virtualenv python-pip python-software-properties

Criando os diretórios necessários

Eu gosto de separar meus códigos/projetos em espaços de trabalhos diferentes.

Por exemplo:

Em meu diretório $HOME crio as seguintes pastas.

  1. mkdir workspace-django
  2. mkdir workspace-nodejs
  3. mkdir venvs

O diretório workspace-django, dispensa comentários. O diretório workspace-nodejs eu costumo baixar o fonte do Node.Js, para aprendizado e claro para instalações de algumas ferramentas como o LessCSS.

A pasta venvs será aborada na próxima seção.

Criando o ambiente virtual com o comando virtualenv

Para o desenvolvimento web com python é de suma importância que haja um ambiente virtual isolado do seu sistema operacional.

Pois caso, instale o Django sem esse ambiente, as bibliotecas baixadas do Django podem atrapalhar as bibliotecas do seu sistema operacional e também em outras instalações por exemplo do web2py ou Flask caso você queira instala-las.

Ha particularidades ao se instalar pacotes do python, como o python-psycopg2. Citando um exemplo, em um servidor de produção onde todos os seus projetos utilizam o Postgresql como SGBD, vale a pena a instalação desse pacote globalmente. Logo abaixo mostrarei como utilizar o virtualenv para utilizar o pacote global.

Continuando....

Dentro da pasta venvs de seu $HOME, execute o comando abaixo.

lucas@lucas-Inspiron-1525 ~ /venvs
  % virtualenv --unzip-setuptools nome_projeto

Acesse a pasta criada.

lucas@lucas-Inspiron-1525 ~ /venvs
  % cd nome_projeto

Ativando o virtualenv.

lucas@lucas-Inspiron-1525 ~ /venvs
  % source bin/activate

Após a ativação do ambiente virtualenv o seu shell deverá aparecer algo parecido com isto.

(nome_projeto)
lucas@lucas-Inspiron-1525 ~VIRTUAL_ENV
  %

O nome_projeto em parentêsis, significa que você esta no ambiente virtual ativado.

Para desativar o ambiente virtualenv utilize o comando.

(nome_projeto)
lucas@lucas-Inspiron-1525 ~VIRTUAL_ENV
  % deactivate

Opções do virtualenv

O comando virtualenv possui muitas opções. Uma delas utilizada no exemplo acima é o --unzip-setuptools, que descompacta os arquivos fontes e .egg para que você possa visualiza-los.

Abaixo segue o diretório, onde são salvos os pacotes instalados.

(nome_projeto)
lucas@lucas-Inspiron-1525 ~VIRTUAL_ENV/lib/python2.7/site-packages
  % pwd
/home/lucas/venvs/nome_projeto/lib/python2.7/site-packages

Outra opção interessante falada anteriormente é a capacidade do virtualenv utilizar os pacotes instalados globalmente em seus sistema operacional.

Para isso utilize a opção --system-site-packages.

No virtualenv ha varias opções que podem ser usadas, como também passar qual será a versão do interpretador python (-p /usr/bin/python3.3).

Veja demais opções utilizando o help

lucas@lucas-Inspiron-1525 ~
  % virtualenv --help

O facilitador virtualenvwrapper

O virtualenvwrapper nada mais é que uma extensão do virtualenv. Ele entra como um facilitador, para que se tenha menos trabalho ao criar ambientes virtuais.

Veja a documentação do projeto.

Como instalar?

É necessário ter o pip instalado em seu sistema operacional. Caso não tenha utilize o comando sudo aptitude install python-pip.

Com usuário comum, execute os comandos.

lucas@lucas-Inspiron-1525 ~
  % sudo pip install virtualenvwrapper

Diretório para ambientes virtuais

Crie dentro do $HOME o diretório com o comando abaixo:

lucas@lucas-Inspiron-1525 ~
  % export WORKON_HOME=~/venvs && mkdir -p $WORKON_HOME && source /usr/local/bin/virtualenvwrapper.sh

Configurando o shell para

Como estou utilizando o zsh devo editar o arquivo .zshrc encontrado dentro do meu diretório $HOME.

Se você utiliza o bash, altere o arquivo .bashrc.

Adicione as linhas abaixo no final do arquivo, para que, quando você abra um terminal os comandos relacionados ao virtualenvwrapper sejam sempre executados.

export WORKON_HOME=~/venvs
source /usr/local/bin/virtualenvwrapper.sh

Utilizando o virtualenvwrapper.

Para criar um ambiente virtual, sem ter que utilizar o virtualenv --unzip-setuptools nome_projeto; cd nome_projeto; source bin/activate, faça:

lucas@lucas-Inspiron-1525 ~
  % mkvirtualenv nome_projeto_um && mkvirtualenv nome_projeto_dois

Lembrando que o mkvirtualenv aceita as mesmas opções do virtualenv

Para alterar de ambiente virtual utilize o workon

lucas@lucas-Inspiron-1525 ~
  % workon nome_projeto_um
(nome_projeto_um)
lucas@lucas-Inspiron-1525 ~
  % workon nome_projeto_dois
(nome_projeto_dois)
lucas@lucas-Inspiron-1525 ~
  %

Finalizando...

Para conclusão deste post, vamos criar um repositório de um projeto de teste e instalar o django.

Nunca se esqueça de que o ambiente virtual deve estar ativado.

(nome_projeto_dois)
lucas@lucas-Inspiron-1525 ~
  % cd workspace-django
(nome_projeto_dois)
lucas@lucas-Inspiron-1525 ~
  % mkdir projeto_dois && cd projeto_dois
(nome_projeto_dois)
lucas@lucas-Inspiron-1525 ~/workspace-django/projeto-dois
  % touch README.md && git init && git add . && git commit -m "Commit inicial"
(nome_projeto_dois)
lucas@lucas-Inspiron-1525 ~/workspace-django/projeto-dois
  % pip install django

Pronto. Agora dentro do workspace-django possuimos o repositorio do projeto_dois, apenas para codificação. Sendo que a pasta do ambiente virtual nome_projeto_dois, encontra-se em outro diretório.

Quaisquer dúvidas, em relação a montar um ambiente python, por favor, me envie um comentário. Terei o maior prazer em ajuda-lo.

Abraços a todos!