Embora cada programador tem seu editor de Texto/IDE preferido, aqui estão algumas recomendações para configurar o IDE populares para escrever e depurar plugins QGIS Python.
On Linux there is no additional configuration needed to develop plug-ins. But on Windows you need to make sure you that you have the same environment settings and use the same libraries and interpreter as QGIS. The fastest way to do this, is to modify the startup batch file of QGIS.
If you used the OSGeo4W Installer, you can find this under the bin folder of your OSGoeW install. Look for something like C:\OSGeo4W\bin\qgis-unstable.bat.
Para usar Pyscripter IDE, eis o que tem de fazer:
Make a copy of qgis-unstable.bat and rename it pyscripter.bat.
Abra-o em um editor. E remova a última linha, a que inicia o QGIS.
Add a line that points to the your Pyscripter executable and add the commandline argument that sets the version of Python to be used (2.7 in the case of QGIS 2.0)
Além disso, adicione o argumento de que aponta para a pasta onde PyScripter encontrará a dll Python usado pelo QGIS, você pode encontrá-la na pasta de arquivos binários da instalação OSGeoW
@echo off
SET OSGEO4W_ROOT=C:\OSGeo4W
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\bin\gdal16.bat
@echo off
path %PATH%;%GISBASE%\bin
Start C:\pyscripter\pyscripter.exe --python25 --pythondllpath=C:\OSGeo4W\bin
Agora, quando você clicar duas vezes neste arquivo de lote, vai iniciar PyScripter, com o caminho correto.
More popular that Pyscripter, Eclipse is a common choice among developers. In the following sections, we will be explaining how to configure it for developing and testing plugins. To prepare your environment for using Eclipse in Windows, you should also create a batch file and use it to start Eclipse.
To create that batch file, follow these steps.
Localize seu executável eclipse.exe.
Crie o seguinte script e use para iniciar eclipse quando estiver desenvolvendo plugins QGIS.
call "C:\OSGeo4W\bin\o4w_env.bat"
set PATH=%PATH%;C:\path\to\your\qgis_core.dll\parent\folder
C:\path\to\your\eclipse.exe
Para usar Eclipse, certifique-se que tem instalado o seguinte:
There is some preparation to be done on QGIS itself. Two plugins are of interest: Remote Debug and Plugin reloader.
Procurar por Plugin reloader e instalá-lo. Isso permitirá que você recarregue um plugin em vez de ter que fechar e reiniciar QGIS para ter o plugin recarregado.
Em Eclipse, crie um novo projeto. Você pode selecionar*General Project* e vincular suas fontes reais mais tarde, por isso realmente não importa onde você coloca este projeto.
Now right click your new project and choose New ‣ Folder.
Click [Advanced] and choose Link to alternate location (Linked Folder). In case you already have sources you want to debug, choose these, in case you don’t, create a folder as it was already explained
Agora, na visão Project Explorer, sua árvore de origem aparece e você pode começar a trabalhar com o código. Você já tem destaque de sintaxe e todas as outras ferramentas IDE disponíveis.
Para obter o depurador trabalhando, alterne para a perspectiva de depuração no Eclipse (Window ‣ Open Perspective ‣ Other ‣ Debug).
Agora inicie o servidor de depuração PyDev selecionando PyDev ‣ Start Debug Server.
Eclipse is now waiting for a connection from QGIS to its debug server and when QGIS connects to the debug server it will allow it to control the python scripts. That’s exactly what we installed the Remote Debug plugin for. So start QGIS in case you did not already and click the bug symbol .
Now you can set a breakpoint and as soon as the code hits it, execution will stop and you can inspect the current state of your plugin. (The breakpoint is the green dot in the image below, set one by double clicking in the white space left to the line you want the breakpoint to be set)
Uma coisa muito interessante que você pode fazer uso de agora é o console de depuração. Certifique-se de que a execução está parado em um ponto de interrupção, antes de prosseguir.
Abra a visualização da Console (Window ‣ Show view). Ela vai mostrar console Debug Server que não é muito interessante. Mas há um botão [Open Console] que lhe permite mudar para uma console PyDev Debug mais interessante. Clique na seta ao lado do botão [Open Console] e escolha PyDev Debug Console. Uma janela se abre para perguntar-lhe qual console você quer começar. Escolha PyDev Debug Console. No caso de estar acinzentado e dizer-lhe para iniciar o depurador e selecionar o quadro válido, certifique-se de que você tem o depurador remoto ligado e estão atualmente em um ponto de interrupção.
Agora você tem um console interativo que lhe permite testar os comandos de dentro do contexto atual. Você pode manipular as variáveis ou fazer chamadas de API ou o que quer que você queira.
Um pouco chato é que, cada vez que você digitar um comando, o console volta para o Debug Server. Para parar esse comportamento, você pode clicar no botão Pin Console quando estiver na página Debug Server e ele deve se lembrar esta decisão, pelo menos, para a sessão de depuração atual.
Uma característica muito útil é ter Eclipse realmente informado sobre a QGIS API. Isto permite-lhe verificar o seu código de erros de digitação. Mas não é só isso, ele também permite que o Eclipse ajudá-lo com o completamento automático das importações de chamadas da API.
Para fazer isso, Eclipse analisa os arquivos da biblioteca do QGIS e recebe toda a informação lá. A única coisa que você tem a fazer é dizer ao Eclipse onde encontrar as bibliotecas.
Click Window ‣ Preferences ‣ PyDev ‣ Interpreter ‣ Python.
Você vai ver o seu interpretador Python configurado na parte superior da janela (no momento python2.7 para QGIS) e algumas guias na parte inferior. As guias interessantes para nós são Libraries e Forced Builtins
Primeiro, abra a guia Bibliotecas. Adicione uma nova pasta e escolha a pasta python de sua instalação QGIS. Se você não sabe onde está pasta (não é a pasta plugins) abra QGIS, inicie um console python e basta digitar `` qgis`` e pressione Enter. Ela vai mostrar que módulo qgis usa e seu caminho. Tira o final /qgis/__init__.pyc deste caminho e você tem o caminho que está procurando.
You should also add your plugins folder here (on Linux it is ~/.qgis/python/plugins).
Next jump to the Forced Builtins tab, click on New... and enter qgis. This will make Eclipse parse the QGIS API. You probably also want eclipse to know about the PyQt4 API. Therefore also add PyQt4 as forced builtin. That should probably already be present in your libraries tab.
Clique OK e está feito.
Note: every time the QGIS API changes (e.g. if you’re compiling QGIS master and the SIP file changed), you should go back to this page and simply click Apply. This will let Eclipse parse all the libraries again.
Para outra configuração possível do Eclipse para trabalhar com plugins QGIS Python, verifque este link <http://linfiniti.com/2011/12/remote-debugging-qgis-python-plugins-with-pydev>`_
Se você não usar um IDE como o Eclipse, você pode depurar usando PDB, seguindo estes passos.
Primeiro adicione este código no local onde você gostaria de depurar
# Use pdb for debugging
import pdb
# These lines allow you to set a breakpoint in the app
pyqtRemoveInputHook()
pdb.set_trace()
Em seguida, execute QGIS a partir da linha de comando.
On Linux do:
$ ./Qgis
On Mac OS X do:
$ /Applications/Qgis.app/Contents/MacOS/Qgis
E quando o aplicativo atingir o seu ponto de interrupção você pode digitar no console!
Adicione informação de testes