Para desarrollar aplicaciones independientes de escritorio con PyQGIS se puede usar el paquete OSGeo4W, que configura variables de entorno y permite la instalación de diferentes librerías de manera centralizada. Después de instalar Quantum GIS con OSGeo4W se ejecuta la terminal de comandos de OSGeo4W y después de configurar variables de entorno, es posible ejecutar aplicaciones de PyQGIS. Ver la actualización del post para más detalles.
Si por alguna razón no se va a utilizar OSGeo4W (a mi por ejemplo, me gusta instalar cada paquete por separado para tener mayor control en la configuración) se deben seguir los siguientes pasos:
1. Instalar Quantum GIS
Instalar en el directorio raíz (C:\) el paquete Windows-Standalone prestando atención a las notas para instalación de librerías redistribuibles de Microsoft. Se recomienda la instalación en C:\ para evitar problemas posteriores relacionados con espacios en rutas.
2. Instalar Python
Instalar Python para Windows. Si bien Python ya ha alcanzado la versión 3, su implementación en los diferentes programas que lo utilizan se está llevando a cabo o está siendo planeado en la actualidad. Por tanto se deben mirar las versiones 2.x. Es recomendable descargar la versión 2.5.4 porque los módulos de PyQGIS (del instalador independiente) dependen de Python 2.5. Por defecto se instala en C:\Python25.
3. Instalar PyQt4
Instalar PyQt4 para Windows. Se debe descargar el archivo que corresponde a la versión instalada de Python (2.5.x), es decir, PyQt-Py2.5-gpl-4.7.3-1.exe.
4. Configurar variables de entorno
Para acceder a los módulos de Python y a las librerías de PyQGIS se requiere configurar variables de entorno. Hay diferentes maneras de hacerlo, mi favorita es escribir un archivo .bat con las siguientes líneas:
set PATH=c:\qgis\bin;%PATH%
En el siguiente paso se hará uso del archivo creado.
5. Ejecutar la terminal de comandos de Windows (cmd)
Dirigirse desde la terminal de comandos a la carpeta que contiene el archivo .bat creado y ejecutarlo.

Ahora se ingresa a la consola de Python ejecutando la instrucción:
Una vez allí, se importan las librerías de Quantum GIS y PyQt4 y se verifica que no se han obtenido errores:
>>from qgis.gui import *
>>from PyQt4.QtCore import *
>>from PyQt4.QtGui import *

6. Ejecutar aplicación de ejemplo
Ahora es posible ejecutar el visor de PyQGIS que se ha construido en blogs anteriores. NOTA: Para ejecutar el visor de PyQGIS en Windows será necesario cambiar el valor de la variable qgis_prefix del archivo principal de la aplicación para que apunte al directorio de Quantum GIS, es decir, debe quedar así: qgis_prefix = "c:\qgis"


Eso es todo!
ACTUALIZACIÓN (2011/01/15): INSTRUCCIONES PARA EL ENTORNO DE DESARROLLO PARA PyQGIS USANDO OSGeo4W
Las instrucciones proporcionadas en este post funcionaron correctamente hasta la versión 1.4 de QGIS. Después, el instalador de QGIS para Windows cambió la estructura de directorios para las librerías (dll), por lo cual dichas instrucciones no permiten configurar el entorno de desarrollo para versiones de QGIS >= 1.5.
En todo caso, como alternativa para versiones recientes, a continuación se describe la configuración del entorno de desarrollo para PyQGIS usando el paquete OSGeo4W.
1. Descargar el instalador de OSGeo4W desde este enlace.
2. Instalar Quantum GIS: Se puede hacer desde la opción Express Install o Advanced Install. Al hacerlo, adicionalmente se instala Python y Qt4.
3. Abrir la terminal de OSGeo4W (OSGeo4W Shell): Esto puede hacerse desde el menú Inicio --> Programas --> OSGeo4W
4. Definir las variables de entorno PYTHONPATH y PATH: Una de las maneras de hacerlo es ejecutando desde la terminal de OSGeo4W un archivo .bat que puede descargarse desde este enlace.

Este archivo define las variables de entorno así:
set PATH=c:\OSGeo4W\apps\qgis\bin;%PATH%
5. Ejecutar Python desde la terminal e importar las librerías de Quantum GIS para Python. Si todo ha salido bien, no obtendremos errores.

Eso es todo!
Comentarios
He empezado a seguir tu guía de desarrollo, pero ya tuve el primer problema, y ya llevo varios dias dando vueltas, pero no dado con la solución.
En el proceso de importación de librerías me genera este error:
>>> import qgis.core
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named qgis.core
He instalado varios varios paquetes de python, estoy trabajando con el 2.5 como lo indicas, y estoy en windows xp 64 bits, y estoy usando el paquete Windows-Standalone.
Tienes idea de cual podría ser el problema?
Muchas gracias.
Y pues tengo dos preguntas:
1. He empezado a seguir tu guía de desarrollo, pero ya tuve el primer problema, y ya llevo varios días dando vueltas, pero no he dado con la solución.
En el proceso de importación de librerías me genera este error:
>>> import qgis.core
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named qgis.core
He instalado varios paquetes de python, teniendo en cuenta que estoy trabajando sobre 64 bits, y de hecho estoy trabajando con el 2.5 como lo indicas (específicamen te este For Win64-Itanium users: python-2.5.4.ia64.msi, espero estar usando el correcto, aunque he intentado con otros, pero el problema persiste), y estoy en windows xp 64 bits, y estoy usando el paquete Windows-Standalone para quantum.
Tienes idea de cuál podría ser el problema?
Nota: A quien le interese, hace poco lo hice sobre Windows 7 de 32 bits, y no tuve ningún problema, parece ser problema del sistema operativo, pues uso 64 bits. Creo estar usando algún paquete incorrecto.
2. He checkeado toda la guía, aunque no he siquiera podido empezar por el anterior error, pero me surge una duda, he visto como desarrollas un visor de shapefiles, y veo que en las siguientes paginas muestras la forma de incluir los plugins de quantum, pero quisiera saber, si para efectos de editar un shapefile, solo basta con incluir alguna librería de edición, o es necesario desarrollar código muy complejo para lograrlo.
Muchas gracias.
Para la primera duda no tengo cómo probar las librerías con la versión de 64 bits, en principio creería que es por eso que falla. Has intentado usar las librerías de Python de 32 bits? (Como lo hiciste en Windows 7, en lugar de intentar con las de 64 bits) eso sería lo que probaría yo.
Con respecto a la segunda, creo que un plugin no te bastaría para editarlo, necesitarías desarrollarlo usando la API de QGIS. La verdad no lo he hecho. Para darte una idea, tendrías casi que traducir las clases qgsmaptool*.cpp que encuentras acá: svn.osgeo.org/qgis/trunk/qgis/src/app/
Saludos y déjanos saber cómo te va con esto.
Tuxman
Gracias de nuevo.
Espero les sirva.
Después de hacer varios intentos. Instalar nuevamente las aplicaciones. Me tomo el atrevimiento de molestarte nuevamente.
Tengo instalado QGIS 1.3.0 (c:qgis), Python 2.5.4 (C.Python25), PyQt-Py2.5-x86-gpl-4.8.3-1.exe.
El archivo var_entorno.bat.
set PYTHONPATH=C:qgispython
set PATH=C:qgispythonbin ;%PATH%
PROBLEMA: No encuentro la carpeta bin dentro de c:qgispython. Debería estar aquí?.
PROBLEMA 2: "5. Ejecutar Python desde la terminal e importar las librerías de Quantum GIS para Python". Me da este error al importar >>> from qgis.core import *.
"Traceback (most recent call last):
File "(stdin)", line1, in (module)
ImportError: DLL load failed: No se puede encontrar el modulo especificado."
En Windows no lo pude hacer funcionar. En Ubuntu ya lo tengo funcionando.
Alguna sugerencia. Gracias nuevamente.
Te recomiendo eso si, que pruebes una versión más reciente de QGIS, como la 1.5 o la 1.6, al hacerlo, ya debes tener en cuenta la actualización del post (http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&id=253&Itemid=59#actualizacion1).
Saludos.
Desde linea de comandos me da el error: " Qt or QGIS not installed".
Voy a intentar, como me dices, con una version superior de QGIS.
Gracias.
te recomiendo usar los pasos de la actualización del post, es decir, en lugar de utilizar la instalación independiente, usa el instalador OSGeo4W, has click en este enlace (http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&id=253&Itemid=59#actualizacion1) para ir a la actualización.
Saludos.
Cordial Saludo
Germán siguiendo la guía de desarrollo no he podido instalarlo sobre Windows 7 de 64 bits. Por lo leído en comentarios anteriores veo que este es el problema, Quería saber si ya existe alguna solución a este problema me seria de gran ayuda.
Gracias por su tiempo y buenas intenciones.
acá [1] hay un hilo de la lista de usuarios de QGIS sobre problemas de instalación de QGIS en Windows de 64 bits. Tal vez te sirva de ayuda. No se si ya estás siguiendo la actualización de este post, que aconseja la instalación usando el paquete OSGeo4W. En realidad no he probado la instalación en 64 bits, si lo consigues dejanos saberlo pues parece que más usuarios lo necesitan.
Saludos.
[1] http://osgeo-org.1803224.n2.nabble.com/QGIS-amp-windows-xp-64-bit-td5507161.html
Cordial Saludo
Ya logre instalarlo sobre Windows 7 de 64 bits. Lo que hice fue que al instalar postgresql-8.4.7-1-windows.exe. Lo instale
No sobre la ruta que él define C:Program Files (x86) PostgreSQL
Si no sobre la siguiente C:Program FilesPostgreSQL .
Espero que les sea de utilidad para aquellos que trabajan en Windows 7 de 64 bits
Nota: Para instalar postgres y PostGIS Raster he utilizado el siguiente blog por si les es de interés a alguna persona me parece muy buen blog.
http://gis4free.wordpress.com/2011/03/10/how-to-install-and-configure-postgis-raster-on-windows/
Una aclaración (que tomó bastante tiempo): para poder distribuir la aplicación con py2exe, es necesario, además de configurar el entorno de desarrollo, copiar dentro de la carpeta C:\OSGeo4W\apps \Python27\Lib\s ite-packages la carpeta py2exe, que DEBE ser instalada en primer lugar en otra instalación de python, independiente de la instalación del python de OSGeo4W.
Entonces, en un momento conviven dos instalaciones de python, la que tiene el py2exe, y la de OSGeo4W. En este escenario, no compila la aplicación, porque toma el python independiente (que no es OSGeo4W), pero es necesario instalarlo para instalar el py2exe, ya que el instalador de py2exe SOLO reconoce como python al que se instala independienteme nte del OSGeo4W.
Espero haber sido claro.
Saludos,
Adolfo
gracias por comentarnos cómo resolviste el problema, eso ayudará mucho a futuros usuarios.
No tuve ese problema cuando escribí el post, pero si hace unas semanas cuando lo quise reproducir, aunque tenía un Python ya instalado fuera de OSGeo4W. Sin embargo, la solución que usé fue la que se da aquí [1], que registra el Python de OSGeo4W en Windows para que py2exe la reconozca.
Saludos,
Tuxman
-------------------
[1] http://effbot.org/zone/python-register.htm
Suscripción de noticias RSS para comentarios de esta entrada.