:Date: 2007-10-02 :Version: 1.0 :Authors: - Rafael Oliveira :Company: Paradigma 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: 1. Vá em Help/Software updates/Find and install. 2. Escolha "Search for new features to install" e Next. 3. Clique em "New remote site" e coloque esse__ endereço e um nome qualquer. 4. Selecione o site adicionado e clique em "Finish". 5. Selecione a versão mais nova dos pacotes do PyDev for Eclipse e PyDev Extensions. __ `Pydev Updates`_ 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: 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 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: 1. Vá em Help/Software updates/Find and install. 2. Escolha "Search for new features to install" e Next. 3. Marque os sites "Europa Discovery Site" e "The Eclipse Project Updates" e clique em "Finish". 4. Selecione Europa Discovery Site/Web and JEE Development/Web Standard Tools. 5. Clique em "Select Required". 6. 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: 1. Crie um projeto do tipo Pydev Project. 2. 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. A. Clique com o botão direito no nome do projeto e escolha New/Folder. B. 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/. C. 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". D. Para testar abra algum arquivo .py e digite ``from Products.`` e veja se aparece uma lista dos produtos do seu projeto. 3. 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". 4. 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". 5. 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. 6. 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. 7. 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: 1. 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. 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 pydev server. 4. 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). .. Referências .. _JRE: http://www.eclipse.org/downloads/moreinfo/jre.php .. _Eclipse Downloads: http://www.eclipse.org/downloads .. _PyDev Updates: http://www.fabioz.com/pydev/updates/ .. _PyLint: http://www.logilab.org/Project/name/pylint .. _PyDev Extensions: http://www.fabioz.com/pydev/