Personal tools
You are here: Home Textos Como usar o Eclipse para desenvolver em Python, especialmente Zope/Plone
Document Actions

Como usar o Eclipse para desenvolver em Python, especialmente Zope/Plone

by Rafael Oliveira last modified 2009-04-24 15:49

Tutorial.

Date: 24abr2009
Version: 2.0
Author: Rafael Oliveira <rafaelbco@gmail.com>

Introdução

Este tutorial mostra como instalar e configurar o Eclipse para desenvolver em Python. O plugin utilizado será o PyDev Extensions [4]. Após as configurações você terá uma IDE com muitas funcionalidades (dê uma olhada em PyDev Extensions [4], 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. A versão utilizada do Plone é a 3.2.2.

Pré-requisitos

  • Java: seu sistema deverá ter o Java 1.4 JRE ou Java5 JRE (recomendável) ou algo compatível instalado. Mais informações em JRE [1].

    No Debian testing eu instalei o pacote sun-java6-jre via apt-get:

    apt-get sun-java6-jre
    
  • Python: o interpretador suportado pelas versões mais recentes do Zope/Plone é o Python 2.4. Para instalá-lo no Debian:

    apt-get install python-2.4
    
  • Pylint: Não é exatamente um pré-requisito, porém o PyLint [3] 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).

    Para instalá-lo:

    apt-get install pylint    
    

Download e instalação do Eclipse

Na página oficial Eclipse Downloads [2] e faça o download do Eclipse Classic. A versão atual é a 3.4.2. Existe um pacote do Eclipse disponível via apt, porém se trata de uma versão mais antiga.

No Debian Testing a instalação é feita descompactando o arquivo e movendo o diretório resultante (eclipse) para algum lugar conveniente. No meu caso eu a movi para meu diretório home:

cd /diretorio/onde/esta/o/arquivo/do/eclipse
tar xvzf eclipse-SDK-3.4.2-linux-gtk.tar.gz
mv eclipse ~
cd ~/eclipse
./eclipse

Ao iniciar ele perguntará onde deverá ficar o diretório workspace. Esse diretório armazenará os arquivos dos projetos criados no Eclipse.

Instalando e configurando o plugin Pydev Extensions

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:

  1. Vá em Help/Software updates.../Available Software/Add Site....
  2. Coloque esse [8] endereço.
  3. Marque o checkbox Show only the latest versions of available software.
  4. Selecione a versão mais nova dos pacotes do PyDev for Eclipse e PyDev Extensions.
  5. Clique em Install....
  6. Next, next, next, finish !

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.

    Importante

    Se for usar o Eclipse para desenvolver com Zope/Plone use a versão 2.4 do Python, mesmo se houver uma versão mais nova instalada.

  • 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:

  1. Crie um novo projeto do tipo Pydev Project com as opções default.
  2. Clique com o botão direito na pasta src e escolha New/Pydev Module.
  3. Escolha um nome para o módulo (ex. HelloWorld).
  4. Digite: print 'Hello world !'
  5. Clique com botão direito no arquivo criado e escolha Run as/Python run.
  6. Verifique no console se o programa foi executado corretamente.
  7. Digite alguma coisa com sintaxe incorreta e veja se o pylint está acusando os erros.
  8. Digite import os. e veja se a lista de nomes exportados do módulo os aparece automaticamente.

Instalando plugins para desenvolvimento Web

Os plugins para desenvolvimento Web fornecem editores para arquivos HTML e JavaScript, com syntax highlighting, code-completion, etc. Para instalá-lo via Eclipse:

  1. Vá em Help/Software updates.../Available Software.
  2. Vá em Ganymede Update Site/Web and Java EE Development e selecione os plugins Web Developer Tools e Web Page Editor.
  3. Clique em Install...
  4. Next, next, next, finish !

Para testar crie um arquivo com extensão .html, clique como o botão direito e escolha Open With para selecionar os editores disponíveis.

Para associar as extensões de sua linguagem de template favorita (ex.: *.pt) aos editores web vá em Window/Preferences/General/Content types e associe a extensão ao tipo Text/HTML. Depois vá em General/Editors/File associations e escolha o editor padrão para a extensão.

Criando um projeto Zope/Plone

A estratégia descrita aqui depende de existir um buildout de desenvolvimento em Zope/Plone. Caso não esteja desenvolvendo usando buildout ainda, dê uma olhada em Managing projects with Buildout [5].

Será usada também a receita collective.recipe.omelette [6], seguindo a sugestão do Martin Aspelli no artigo Eclipse, PyDev and Buildout [7]. Não será abordado aqui com detalhes como trabalhar com buildouts e omelette. Caso tenha alguma dúvida consulte os links.

Os passos para criar e configurar o projeto são os seguintes:

  1. Criar um buildout de desenvolvimento em Zope/Plone.

  2. Criar dois omelettes:

    • dev: Contém os eggs/pacotes/produtos que estão sendo desenvolvidos por você.
    • 3rd: Contém os eggs/pacotes/produtos do Zope, Plone e de terceiros. É útil referenciar esses pacotes no seu projeto Eclipse para possibilitar o auto-complete e para fazer buscas no código-fonte.

    Você poderia criar um omelette único, contendo todos os eggs/pacotes/produtos. Porém é mais conveniente separar os eggs/pacotes/produtos de desenvolvimento, pois fica mais fácil de navegar no Eclipse.

    Como exemplo, vamos supor que você esteja desenvolvendo o egg mycompany.myegg. Modifique seu buildout.cfg para ficar dessa forma:

    [buildout]
    parts =
        # ...
        omelette_3rd
        omelette_dev
        omelette_init
    
    # ...
    
    develop = src/mycompany.myegg
    
    [development]
    eggs = mycompany.myegg
    
    [thirdparty]
    eggs = Plone ${buildout:eggs}     
    
    # ...
    
    [instance]        
    # ...        
    eggs =
        ${development:eggs}
        ${thirdparty:eggs}   
    
    
    [omelette_3rd]
    recipe = collective.recipe.omelette
    location = ${buildout:directory}/parts/omellete_3rd
    eggs = ${thirdparty:eggs}
    products = 
    packages = ${zope2:location}/lib/python .
        
    [omelette_dev]
    recipe = collective.recipe.omelette
    location = ${buildout:directory}/parts/omellete_dev
    eggs = ${development:eggs}
    products = 
    packages =
    
    # Cria __init__.py na raiz dos omelettes para que eles sejam
    # reconhecidos no Eclipse como pacotes Python.
    [omelette_init]
    recipe = iw.recipe.cmd
    on_install = true
    on_update = true
    cmds = 
        touch \
            ${omelette_dev:location}/__init__.py \
            ${omelette_3rd:location}/__init__.py             
    
  3. Criar um projeto Pydev no Eclipse.

  4. Referenciar os omelettes no projeto. Vá em New/Folder, clique em Advanced, selecione Link to folder in the filesystem e clique em Browse... para selecionar o omelette. Faça isso para ambos os omelettes.

  1. Adicionar os omelettes ao PYTHONPATH. Vá em Project/Properties/Pydev - PYTHONPATH/Add source folder e selecione o omelette. Faça isso para ambos os omelettes.

Fazendo isso você terá um projeto com todo o código necessário no PYTHONPATH. Isso possibilitará o auto-complete e fazer buscas no código fonte com rapidez.

Controlando a instância Zope através do Eclipse

Você pode criar um "launcher" para a instância Zope. Para isso vá em Run/External tools/External tools configuration. Crie uma configuração do tipo Program para executar o script runzope de sua instância Zope. Geralmente esse script fica em:

/caminho/do/buildout/parts/instance/bin/runzope

Importante

Teoricamente um launcher para instance fg também deveria funcionar. Porém quando se tenta parar o launcher o processo do Zope continua vivo. Por isso é recomendável usar apenas o runzope.

Agora é possível disparar o Zope indo em Run/External tools, ver as mensagens de debug pela view Console do Eclipse e pará-la através do comando stop.

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:

  1. Edite o script runzope de sua instância Zope. Edite a variável PYTHONPATH incluindo o caminho para o pacote Python do Pydev, por exemplo:

    PYTHONPATH="/home/...:$SOFTWARE_HOME:$PYTHONPATH":/caminho/do/eclipse/plugins/org.python.pydev.debug_1.4.5.2727/pysrc

    O path exato a ser adicionado depende do local onde o eclipse está instalado e da versão do Pydev.

  2. Coloque a linha import pydevd;pydevd.settrace() no local onde você quer que a execução seja interrompida (breakpoint). Funciona exatamente como o pdb.

  3. Mude para perspectiva Debug (Window/Open Perspective) e clique em Pydev/Start debug server.

  4. Inicie sua instância Zope.

Agora quando os comandos import pydevd;pydevd.settrace() forem executados a execução será parada e você poderá depurar seu código utilizando o Eclipse. É possível avançar linha-por-linha, verificar valores de variáveis, etc.

Conclusão

Agora você tem uma IDE python completa. Em PyDev Extensions [4] você encontra uma descrição completa de todas as funcionalidades (são muitas).

Sugestões e correções são bem vindas.

Posted by Anonymous User at 2007-10-07 18:57

Sugestões e correções são bem vindas.

Recipe para automatizar criação de projeto no Eclipse

Posted by Rafael Oliveira at 2009-05-04 19:27
Vejam aqui: http://pypi.python.org/pypi/rbco.recipe.pyeclipse

Automatiza uma boa parte desse tutorial.

Python Eclipse

Posted by Anonymous User at 2009-05-06 02:18

Este tutorial me ajudou muito.

Obrigado!

[]'s

Obrigado

Posted by Anonymous User at 2009-06-03 00:55

Obrigado colega. Consegui instalar no meu Debian Unstable para trabalhar com java.

[]s Jean - São Carlos


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: