Python, Django e virtualenv

Dando continuidade a série “Montando seu ambiente de desenvolvimento Django em Linux”, vamos dar uma pincelada na tríade Python, Django e virtualenv.

Python

Conheça alguns motivos que lhe convencerão a usar Python.

O Python já vem instalado na maioria das distribuições Linux. Na verdade, até hoje nunca usei uma distro Linux que não tivesse o Python previamente instalado. No Slackware 13.1, o Python está na versão 2.6.4. No Debian 6, o Python está na versão 2.6.6.

O portal Python Brasil possui um excelente material para você instalar e dar os primeiros passos com Python.

virtualenv

A linguagem Python não vem “de bobeira” nas distribuições Linux, ela faz parte delas, sendo utilizada para criação de uma série de scripts fundamentais. Passei por uma situação peculiar com o Python: estava usando o OpenSuse (não recordo a versão) e decidi atualizar a versão do Python utilizando o sistema de pacotes da distro… confirmei algumas operações de remoção (que não deveria ter autorizado) e acabei danificando minha instalação do SO.

Então, para aqueles que programam em computadores pessoais, e não querem comprometer tanto o SO quanto o workspace, podem criar ambientes isolados para os projetos utilizando o virtualenv.

No Slackware vamos instalar o setuptools, que é um framework que facilita a instalação e criação de pacotes Python:

$ wget http://peak.telecommunity.com/dist/ez_setup.py

Para instalá-lo é necessário ser root:

$ python ez_setup.py

Em seguida, vamos instalar o virtualenv com a ajuda do _easy_install_ (que faz parte do pacote setuptools):

$ easy_install virtualenv

Esta é uma forma interessante para você instalar módulos Python em seu sistema sem recorrer ao sistema de pacotes do SO.

Agora, como um usuário comum, vamos criar um ambiente em nosso home para testarmos o virtualenv:

$ virtualenv ~/projeto_django

Entrando nesta pasta, você irá se deparar com três diretórios:

  • bin: Os executáveis do seu ambiente isolado estarão aí. Você poderá notar o executável python, o easy_install, o pip e um carinha chamado activate (falaremos deste mais tarde).
  • lib: Nesta pasta você encontrará os módulos e bibliotecas Python utilizadas por este ambiente.
  • include: Segundo o Osvaldo Santana, dentro desse diretório estão os links simbólicos para todos os headers do Python que são necessário para se compilar extensões escritas em C para ele.

Você apenas criou seu ambiente… para ativá-lo basta dar o seguinte comando:

$ source ~/projeto_django/bin/activate

Pronto! Se você executar o Python agora, você estará utilizando as libs deste ambiente. Isso pode permitir que você mova este ambiente entre máquinas, que você instale libs somente neste ambiente (deixando o Python do seu SO “limpo”, isso pode te garantir maior performance da distro) e que você tenha um controle maior sobre as dependências do seu projeto.

Para “sair” do ambiente, basta executar o comando deactivate:

$ deactivate

Pronto… muito simples, não?

Django

Saiba um pouco mais sobre a programação Python para Web.

Vamos instalar o Django neste ambiente isolado. Ativaremos novamente o virtualenv e usaremos o *easyinstall*_ para nos ajudar com esta tarefa:

$ source ~/projeto_django/bin/activate
$ easy_install django

No final da operação, você irá se deparar com uma saída similar a esta:

Installed /home/user/projeto_django/lib/python2.6/site-packages/Django-1.2.5-py2.6.egg Processing dependencies for django Finished processing dependencies for django

Isto é a garantia que o Django foi instalado dentro deste ambiente, e não está visível para o escopo global da distribuição. Tente importa o Django no terminal interativo do Python da sua distro e do Python do seu ambiente isolado e veja o que acontece…

Entenda o que é o Django e como ele funciona.

Até a próxima…