Não é de hoje que escrevemos artigos mostrando como netbeans pode ser utilizado para constituir ambientes de desenvolvimento. Neste artigo iremos demostrar como podemos montar um ambiente de desenvolvimento para o framework django utilizando diversas ferramentas. Veja as ferramentas que iremos utiliza logo abaixo:
- Gnu/Linux kUbuntu 9.04
- Ambiente Python
- Netbeans 6.7
- Versionadores de código
- Mozilla Firefox
Algumas destas ferramentas já foram estudadas em outros artigos desta forma serão feitas somente considerações importantes.
1. kUbuntu
O kUbuntu foi a ferramenta que mais me surpreende nestes últimos tempos, é verdade que o KDE deixou a desejar assim que saiu sua 4 versão, isto foi de alguma forma uma decepção para muito usuários deste gerenciador de janelas, mas como era de se esperar o pessoal que desenvolve estes dois projetos kUbuntu e KDE conseguiram disponibilizar um ambiente tão eficiente quando no tempo da tão estável versão 3.5.
Desta forma ainda podemos citar que durante todo o processo que veio desde a versão do kUbuntu 8.04 não ouve muitas modificações, a única diferença esta na disponibilização do sistema de arquivo Ext4 e do autologin, aconselho o uso do sistema de arquivos Ext4, quanto ao autologin não recomendo.
2. Ambiente Python
O nosso ambiente python é composto de diversas bibliotecas, dentre eles temos objetos para trabalhar com os mais diversos dipos de dados, iremos utiliar basicamente o framework django e um conector para o nosso banco de dados, caso exista a biblioteca python como é o caso dos bancos mysql, postgresql e outros bancos proprietários como o oracle.
1. Framework django
Podemos instalar o framework django com um simples comando aptitude, veja:
user@host:~$ sudo aptitude install python-django
Para checar a versão do django instalada incie veja o comando python:
user@host:~$ python -c "import django; print(django.VERSION)"
2. Driver de banco de dados
MySQL e PostgreSQL
A instalação destes conectores é muito simples, pois estes driveres estão contidos na arvore de pacotes do Ubuntu, desta forma podem ser instalado com um simples comando:
user@host:~$ sudo aptitude install python-mysqldb python-psycopg2.
Assim já podemos testar se os conectores foram instalados. Para isto execute o console python e import os modulo MySQLdb e PsycoPG2, veja como é simples:
user@host:~$ python Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. import MySQLdb as mysql import psycopg2 as postgresql
Se não ocorrer nenhum erro então os conectores para os bancos de dados MySQL e PostgreSQL estão instalados.
Oracle
Para instalar o conector do Oracle primeiro é necessário instalar um produto que a Oracle distribui livremente, o Oracle Instant Client, existe um respositorio da oracle que disponibiliza um pacote deste produto, veja como instalar este produto na documentação disponibilizada por este link, mas antes de proceguir com a instalação, veja que não iremos instalar o SGBD e sim o seu cliente, por isto troque o comando apt-get install oracle-xe por apt-get install oracle-client.
Se tudo correu bem o produto da Oracle foi instalado e pode ser utilizado no diretório /usr/lib/oracle/xe/client vamos precisar colocar a variável ORACLE_HOME no nosso ambiente, edite o arquvio /etc/bash.bashrc e adicione no final do arquivo o seguinte conteudo:
EXPORT ORACLE_HOME="[path do oracle client]"
Recarreque abra um novo terminal e verifique se o valor de ORACLE_HOME foi mesmo configurado execute o comando:
Caso não apareça nada reveja o procedimento de modificação do arquivo bash.bashrc.
Também precisamos informar ao nosso ambiente, temos novas bibliotecas dinâmicas, os arquvios .so, permitindo assim o GCC compilar fontes que utilizam biliotecas Oracle de conexão com banco de dados. Para isto crie um novo arquivo /etc/ld.conf.d/oracle.conf e adicione o endereço do diretório lib dentro do ORACLE_HOME, para isto pode executar o seguinte comando:
echo $ORACLE_HOME/lib > /etc/ld.so.conf.d/oracle.conf
Agora podemos partir para compilação do conector cx-Oracle, que é mantido pela comunidade, para isto vamos baixar a ultima versão destes fontes, veja no site oficial do cx-Oracle. No momento em que este artigo estava sendo escrito a ultima versão disponivel era a 5.0.2, assim iremos utilizar esta versão para fins de exemplo.
Para poder compilar qualquer modulo python desenvolvido em C temos que contar com o pacote python-dev que permite ao GCC compilar fontes C/C++ que utilizam bibliotecas python, para isto execute o comando
user@host:~$ sudo aptitude install python-dev build-essential python-setuptools
Podemos compilar os fonte do modulo cx-oracle, uma particularidade dos modulos do python é que a maioria desles contam com um padrão de instalação, isto podemos chamar de easy_install, esta ferramenta nos permite instalar com facilidade muitos modulos python. Então podemos descompactar e compilar este modulo, veja como:
user@host:~$ mkdir tmp user@host:~$ tar xzf cx_Oracle-5.0.2.tar.gz ... user@host:~$ cd tmp user@host:~$ python setup.py install .. user@host:~$
Uma outra forma de realizar esta instalação é através do setuptools, veja como seria:
user@host:~$ easy_install cx_Oracle
Se tudo se passou com sucesso, podemos então testar o nosso conector veja como:
user@host:~$ python Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. import cx_oracle as db
Caso tenha ocorrido algum erro, reveja esta parte do artigo.
3. Netbeans 6.7
O netbeans a muito tempo deveria ter providenciado um template para o django, visto que este framework vem se popularizando como alternativa para desenvolvimento de blog, e também para sistema web. Mas como o netbeans é uma extraordinária, utilizando o modulo para python associado ao modulo para ant podemos criar um script para trabalhar com o framework django.
Então vamos fazer o download do netbeans preparado para o python, a distribuição que é conhecida com Netbeans Python EA2.

Netbeans Python EA2 (download.netbeans.org/netbeans/6.7/python/ea2)
A instalação do netbeans é a mesma que comentamos neste artigo.
1. Ant
Com o netbeans instalado podemos partir para instalação do plugin Ant, a intalação é muito simples. Vejam as figuras com os passos:
O primeiro passo é abrir o gerenciador de plugins, agora vamos selecionar o plugin para Ant, e clicar em instalar, será aber uma uma janela informando quais foram os plugins selecionados, confira se o plugin Ant aparece nesta lista, o próximo passo ira informar sobre a licença do plugin, caso esteja de acordo com a licença, aceite-a e aguarde até que o plugin seja baixado e instalado. O netbeans será reiniciado. Para visualizar os passos melhor clique na imagem que esta acima.
2. Ant Script
Agora podemos construir o nosso script, este script contará com as seguintes funcionalidades:
- Criar o projeto django.
- Criar um novo aplicativo no projeto.
- Sincronizar banco de dados.
- Start do servidor embutido.
- Stop do servidor embutido.
- Abrir o projeto em um navegador.
Vamos ao código do script:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Meu projeto" default="Criar projeto django" basedir=".">
<property name = "project.dir" location = ".."/>
<property name = "project.src" value = "src"/>
<property name = "project.srcdir" value = "${project.dir}/${project.src}"/>
<property name = "project.context" value = "/context"/>
<property name = "project.host" value = "localhost"/>
<property name = "project.port" value = "8000"/>
<property name = "console.bin" value = "konsole"/>
<property name = "console.args" value = ""/>
<property name = "bin.django" value = "django-admin"/>
<property name = "bin.python" value = "python"/>
<property name = "bin.browser" value = "firefox"/>
<target name="Criar projeto django">
<rename src="${project.srcdir}" dest="${project.srcdir}.old"/>
<path location="${project.dir}"/>
<exec executable = "${console.bin}">
<arg line = "${console.args}"/>
<arg line = "${bin.django} startproject ${project.src}"/>
</exec>
</target>
<target name="Criar aplicativo django">
<path location="${project.srcdir}"/>
<input addproperty="app" description="Nome do novo aplicativo"/>
<exec executable="${bin.python}">
<arg line="manage.py startapp ${app}"/>
</exec>
</target>
<target name="Sincronizar banco de dados">
<path location="${project.srcdir}"/>
<exec executable="${bin.python}">
<arg line="manage.py syncdb --noinput"/>
</exec>
</target>
<target name="Iniciar servidor embutido">
<path location="${project.srcdir}"/>
<exec executable="${bin.python}">
<arg line="manage.py runserver ${project.host}:${project.port}"/>
</exec>
</target>
<target name="Parar servidor embutido">
<path location="${project.srcdir}"/>
<exec executable="${bin.python}">
<arg line="fuser -nk tcp {project.port}"/>
</exec>
</target>
<target name="Abrir no navegador">
<path location="${project.srcdir}"/>
<exec executable="${bin.browser}">
<arg line="http://${project.host}:${project.port}/${project.context}"/>
</exec>
</target>
</project>
Existem varios outros comandos, sabendo agora que você pode improvisar com a Ant crie os targets que achar necessário.
4. Versionadores de código
Quando pensarmos em projetos, devemos saber que é necessário saber planejar e alem disto, também temos que controlar os progressos no desenvolvimento do projeto. Hoje o netbeans conta com diversos projetos que permitem este tipo de interação com o projeto. O netbeans hoje pode se conctar tanto a versionadores de código, assim como controladores de projetos como Firebug, Trac, JIRA. Como já temos um artigo falando sobre o Trac não iremos falar da configuração deste tipo de ferramenta.
1. Subversion
Subversion (também conhecido por svn) é um sistema de controle de versão desenhado especificamente para ser um substituto moderno do CVS, que se considera ter algumas limitações.
| SVN | |
|---|---|
| Web | Sim |
| Distribuido | Não |
| SSH | Sim |
| Standalone | Sim |
| Local | Sim |
2. Git
Git é um Software Livre para controle de versão distribuído. Git foi inicialmente criado por Linus Torvalds para o desenvolvimento do kernel Linux (kernel). O objetivo do Git é atender os requisitos do modelo de desenvolvimento do kernel, tais como desenvolvimento distribuído, manipulação de grandes conjuntos de arquivos, operações de junção (merge) complexas, rapidez, entre outros requisitos.
| Git | |
|---|---|
| Web | Sim |
| Distribuido | Sim |
| SSH | Sim |
| Standalone | Sim |
| Local | Sim |
3. Mercurial
Mercurial é uma ferramenta multi-plataforma de controle de versão distribuído para desenvolvedores de software. O sistema é implementado principalmente em Python. Todas operações do Mercurial são chamadas através de palavras chave de opções para o programa controlador hg, uma referência para o símbolo químico do elemento Mercúrio.
| Hg | |
|---|---|
| Web | Sim |
| Distribuido | Sim |
| SSH | Sim |
| Standalone | Sim |
| Local | Sim |
5. Referencias
- http://pt.wikipedia.org/wiki/Subversion
- http://pt.wikipedia.org/wiki/Git
- http://pt.wikipedia.org/wiki/Mercurial
- http://rodrigomatias.goware.com.br/blog/2007/12/kubuntu-como-ambiente-de-desenvolvimento-java/
apt-get install oracle-xe

Salve Rodrigo, parabéns pelo post.
Não gosto do Netbeans, mas o post é legal pra quem gosta =P
Abraços o/
Respeito sua opinião. Existem N formas de se desenvolver utilizando django.
Parabéns pelo artigo!
Não há muito material disponível desse tipo e sem dúvida você está ajudando a comunidade.
Abraços!
Show de bola o artigo. Parabéns!
Muito bem explicado o artigo.
Vou testar !
Parabéns, muito bem escrito.
Value pela correção Tony pela contribuição na seção de instalação do cx_Oracle.