Como usar o Eclipse para desenvolver em Python, especialmente Zope/Plone
Tutorial.
| Date: | 2007-10-02 |
|---|---|
| Version: | 1.0 |
| Author: | Rafael Oliveira <rafaelbco@gmail.com> |
| Company: | Paradigma <http://www.paradigma.com.br> |
Como usar o Eclipse para desenvolver em Python, especialmente Zope/Plone
Introdução
Este tutorial mostra como instalar e configurar o Eclipse para desenvolver em Python. O plugin utilizado será o PyDev Extensions. Após as configurações você terá uma IDE com muitas funcionalidades (dê uma olhada em PyDev Extensions, vale a pena).
Eu utilizo o Debian Testing e portanto o tutorial é baseado nesse sistema operacional. No entanto ele é genérico o bastante para ser aplicado em outros SOs.
No final há seções dedicadas ao desenvolvimento em Zope/Plone.
Pré-requisitos
Seu sistema deverá ter o Java 1.4 JRE, Java5 JRE (recomendável) ou algo compatível instalado. Mais informações em JRE.
No Debian testing eu instalei o pacote sun-java6-jre via apt.
Download e instalação do Eclipse
Na página oficial Eclipse Downloads e faça o download do Eclipse Classic. A versão atual é a 3.3. Existe um pacote do Eclipse disponível via apt, porém se trata de uma versão antiga.
No Debian testing a instalação é feita descompactando o arquivo e movendo a pasta resultante (eclipse) para algum lugar conveniente. No meu caso eu a movi para /usr/lib. Para iniciar o Eclipse basta então fazer:
cd /usr/lib/eclipse ./eclipse &
Uma coisa irritante é que toda vez que eu inicio o Eclipse desse jeito ele pergunta onde está meu Workspace. Para ele não perguntar basta executá-lo assim:
cd /usr/lib/eclipse ./eclipse -data /path/do/meu/workspace &
Obviamente você pode escrever um shell script para executar essa linha de comando e colocá-lo em algum diretório que esteja no seu PATH.
Instalando e configurando o plugin Pydev Extensions
Pré-requisitos
Não é exatamente um pré-requisito, porém o PyLint adiciona funcionalidades interessantes ao PyDev. Além disso o pylint pode ser utilizado separadamente. Da descrição do pacote Debian (chama-se "pylint"):
Pylint is a Python source code analyzer which looks for programming errors, helps enforcing a coding standard and sniffs for some code smells (as defined in Martin Fowler's Refactoring book).
Instalando
É possível instalar o PyDev Extensions a partir do próprio Eclipse. Para isso você deve executar o Eclipse com um usuário com permissão de escrita no diretório de instalação do Eclipse e seguir os passos:
- Vá em Help/Software updates/Find and install.
- Escolha "Search for new features to install" e Next.
- Clique em "New remote site" e coloque esse endereço e um nome qualquer.
- Selecione o site adicionado e clique em "Finish".
- Selecione a versão mais nova dos pacotes do PyDev for Eclipse e PyDev Extensions.
Configurando
Algumas configurações devem ser feitas obrigatoriamente. As demais opções podem ser exploradas depois para obter funcionalidades avançadas. Para configurar o plugin vá em Window/Preferences/Pydev. Você deve configurar o seguinte:
- Interpreter - Python: Você deve adicionar o executável do seu interpretador Python. Na maioria das distribuições Linux o path é algo como /usr/bin/python2.4 .
- Pylint: escolha se você deseja usar o pylint ou não (marque em "Use pylint ?"). Preencha o campo "Location of pylint (lint.py)". No Debian o caminho é: /usr/share/pycentral/pylint/site-packages/pylint/lint.py. Coloque também o valor 1 em "Max process for Pylint".
Testando
Para testar se tudo está funcionando:
- Crie um novo projeto do tipo "Pydev Project" com as opções default.
- Clique com o botão direito na pasta src e escolha New/Pydev Module.
- Escolha um nome para o módulo (ex. HelloWorld).
- Digite: print 'Hello world !'
- Clique com botão direito no arquivo criado e escolha Run as/Python run.
- Verifique no console se o programa foi executado corretamente.
- Digite alguma coisa com sintaxe incorreta e veja se o pylint está acusando os erros.
- Digite import os. e veja se a lista de nomes exportados do módulo os aparece automaticamente.
Instalando o plugin para desenvolvimento Web
O plugin Web Standard Tools forneced editores para arquivos HTML e JavaScript, com syntax highlighting, code-completion, etc. Para instalá-lo via Eclipse:
- Vá em Help/Software updates/Find and install.
- Escolha "Search for new features to install" e Next.
- Marque os sites "Europa Discovery Site" e "The Eclipse Project Updates" e clique em "Finish".
- Selecione Europa Discovery Site/Web and JEE Development/Web Standard Tools.
- Clique em "Select Required".
- Next, next, next, finish !
Em Window/Preferences/General/Content Types você pode associar as extensões de sua linguagem de template favorita (ex.: *.pt) ao tipo HTML. Desse modo o editor HTML será utilizado para abrir arquivos do tipo escolhido.
Criando um projeto Zope/Plone
Para obter o máximo das funcionalidades do Eclipse/PyDev é necessário usar algumas técnicas descritas aqui:
Crie um projeto do tipo Pydev Project.
Adicione a pasta dos produtos específicos do seu projeto (não adicione a pasta do Plone aqui). Para que o Pydev possa reconhecer os produtos corretamente seus produtos deverão estar em uma estrutura igual a essa no sistema de arquivos:
/home/meuusuario/meu_projeto/produtos/ __init__.py Products/ __init__.py Produto1/ Produto2/ ...O importante é que exista uma pasta chamada Products contendo os produtos do projeto, e que a pasta pai contenha um arquivo __init__.py. Dentro da pasta products também deverá existir um __init__.py. Essa estrutura é necessária devido ao sistema de pacotes do Zope que coloca os produtos dentro do pacote virtual "Products". Desse modo ao fazer um import Products.Produto1 o Eclipse conseguirá reconhecer o produto.
Obs.: links simbólicos não funcionam aqui ! O Eclipse não irá reconhecer os produtos corretamente se você utilizar links simbólicos.
- Clique com o botão direito no nome do projeto e escolha New/Folder.
- Clique em Advanced e marque "Link to folder in filesystem". Procure a pasta pai da sua pasta Products. No meu exemplo o caminho é /home/meuusuario/meu_projeto/produtos/.
- Adicione a pasta no PYTHONPATH. Clique com o botão direito no projeto, vá em Properties/PyDev - PYTHONPATH. Clique em "Add source folder" e escolha a pasta pai da pasta da Products. No exemplo dado essa pasta se chama "produtos".
- Para testar abra algum arquivo .py e digite from Products. e veja se aparece uma lista dos produtos do seu projeto.
Adicione os produtos do Plone ao PYTHONPATH. A pasta contendo os produtos do Plone deve estar em uma estrutura como a dos produtos do seu projeto, por exemplo:
/home/meuusuario/produtos_plone/ __init__.py Products/ Archetypes/ CMFCore/ CMFPlone/ ...Clique com o botão direito no projeto, vá em Properties/PyDev - PYTHONPATH. Adicione a pasta contendo a pasta Products do Plone (ex.: produtos_plone) como uma "External Source Folder".
Adicione os arquivos do Zope ao PYTHONPATH. A pasta lib/python do Zope já está em uma estrutura adequada, basta adicioná-la como uma uma "External Source Folder".
Opcionalmente você pode criar um projeto separado e adicionar os produtos do Zope e do Plone à este projeto. Isso é útil apenas no caso de você precisar fazer buscas no código fonte do Zope e do Plone, utilizando o próprio Eclipse para isso. Você pode ainda associar este novo projeto ao projeto principal (nas propriedades do projeto). Dessa forma, ao pressionar F3 com o cursor em cima de um identificador o Eclipse buscará sua definição também nos produtos do Zope e do Plone.
A verificação de imports do pylint não funciona bem com as configurações acima. Para desabilitá-la vá em Window/Preferences/PyDev/Pylint. Em "Arguments to pass to pylint..." coloque: --disable-msg=E0611,F0401. Essa opção pode ser usada para desabilitar outras mensagens inconvenientes do pylint. A documentação do pylint explica as outras opções que pode ser utilizadas, vale a pena dar uma olhada.
Executar o Zope dentro do Eclipse. Para isso vá em Run/External tools/Open external tools dialog. Crie uma configuração do tipo Program para executar o runzope de sua instância Zope.
Usando o debugger gráfico do PyDev com Zope
O PyDev possui um excelente debugger gráfico. A utilização com projetos python "stand-alone" é trivial. Para utilizá-lo com o Zope, no entanto, são necessárias algumas configurações:
Edite o arquivo bin/runzope de sua instância Zope. Mude a variável PYTHONPATH para algo como:
PYTHONPATH="$SOFTWARE_HOME":/usr/lib/eclipse/plugins/org.python.pydev.debug_1.3.8/pysrc
O path exato a ser adicionado depende do local onde o eclipse está instalado e da versão do Pydev.
Coloque a linha import pydevd;pydevd.settrace() no local onde você quer que a execução seja interrompida (breakpoint). Funciona exatamente como o pdb.
Mude para perspectiva Debug (Window/Open Perspective) e clique em Pydev/Start pydev server.
Inicie sua instância Zope.
Agora quando o código os comandos import pydevd;pydevd.settrace() forem executados você poderá debugar seu código utilizando o Eclipse.
Conclusão
Agora você tem uma IDE python completa. Em PyDev Extensions você encontra uma descrição completa de todas as funcionalidades (são muitas).
Sugestões e correções são bem vindas.
Sugestões e correções são bem vindas.