martes, mayo 15, 2007

PyQt en Windows

La instalación de PyQt4 en mi Debian Sid no tuvo mayores inconvenientes, es más, era uno de lo s paquetes que había instalado para correr algunos scripts de SuperKaramba (si, ya se PyQt3, pero bueno, cuando fui a Synpatics vi que tenía tambien la version 4)
A raíz de una inquietud que me surgió de las complicaciones que tuvo Latuaro para compilar PyQt, decidí ver que tan complicado era.
Notar que es una instalación de Qt/C++ al comienzo, la parte de PyQt son los últimos pasos.
Vamos por Qt...
  • Bajé primero MinGW (que ahora es tipo Cygwin, te bajas un exe chiquito, y cuando lo ejecutas te baja gcc, g++, make, etc. solito de internet, hice una instalación full). Luego me daría cuenta que no era necesario, pero bueno, yo creía que había que compilar algo...
    Para los que no conozcan MinGW, es un port de gcc a windows, similar a cygwin.
    (Al momento de la ejecutar este MinGW-5.1.2.exe me advierte de que hay una versión más nueva, no le hice caso, después de todo, acababa de bajarlo!)
  • Luego bajé la versión _binaria_ de Qt para windows(qt-win-opensource-4.2.3-mingw.exe), en la pagina de Trolltech, dije que deseaba realizar desarrollo Open Source, hay que fijarse que sea la que termina en -mingw.exe
    Para varias bajé Vim 7.1 y Mc, aunque nada pude hacer contra la consola antinatural de windows, que ni de tamaño se puede cambiar con facilidad :(
  • Comienza la instalación (de Qt), me pregunta donde está MinGW, se lo apunto (C:\mingw), me dice que la versión que soporta es la 3.2, luego avisa que no encuentra w32api.h. Pero el archivo está, obviamente que con el nuevo estadar de C++, es decir, sin el .h final. Despues de eso la instalacion termina sin problema, y me genera en el menú inicio los accesos al diseñador, lingüista, asistente, etc. Y un par de bat para meter las variables de Qt en el Path. Tomé todas las variables y las puse en el Path del sistema, este sería el paso que haría a la versión compilada de PyQt4 funcionar.
    Así quedaron las variables de entorno:
    ALLUSERSPROFILE=C:\Documents and Settings\All Users
    APPDATA=C:\Documents and Settings\defo\Datos de programa
    CLASSPATH=.;C:\Archivos de programa\QuickTime\QTSystem\QTJava.zip
    CLIENTNAME=Console
    CommonProgramFiles=C:\Archivos de programa\Archivos comunes
    COMPUTERNAME=YGGDRASIL-GHOST
    ComSpec=C:\WINDOWS\system32\cmd.exe
    FP_NO_HOST_CHECK=NO
    HOMEDRIVE=C:
    HOMEPATH=\Documents and Settings\defo
    LANGUAGE=es
    LOGONSERVER=\\YGGDRASIL-GHOST
    MCC_INCLUDE=C:\MCC18\h;
    MCHOME=C:\MC
    NUMBER_OF_PROCESSORS=1
    OS=Windows_NT
    Path=C:\MCC18\mpasm;C:\MCC18\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\Syste
    m32\Wbem;C:\Archivos de programa\QuickTime\QTSystem\;C:\MCC18\mpasm;C:\MCC18\bin
    ;C:\Python25;C:\MinGW\bin;C:\MCC18\mpasm;C:\MCC18\bin;C:\Python25;C:\MinGW\bin;"
    C:\Archivos de programa\Vim\vim71";C:\Qt\4.2.3\bin;C:\MinGW\bin;C:\Python25\Lib\
    idlelib
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    PROCESSOR_ARCHITECTURE=x86
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 47 Stepping 0, AuthenticAMD
    PROCESSOR_LEVEL=15
    PROCESSOR_REVISION=2f00
    ProgramFiles=C:\Archivos de programa
    PROMPT=$P$G
    QMAKESPEC=win32-g++
    QTDIR=C:\Qt\4.2.3
    QTJAVA=C:\Archivos de programa\QuickTime\QTSystem\QTJava.zip
    SESSIONNAME=Console
    SystemDrive=C:
    SystemRoot=C:\WINDOWS
    TEMP=C:\DOCUME~1\defo\CONFIG~1\Temp
    TMP=C:\DOCUME~1\defo\CONFIG~1\Temp
    USERDOMAIN=YGGDRASIL-GHOST
    USERNAME=defo
    USERPROFILE=C:\Documents and Settings\defo
    windir=C:\WINDOWS
    Probé una pequeña app en Qt y funcionó perfectamente.
  • Luego fui a por PyQt de la pagina de Riverbank y bajé la version binaria (no el codigo fuente, ni SIP, me advierte que no incluye Qt, pero es algo que ya tengo instalado).

    Luego de instalarlo, realizé los imports, como hemos visto en los anteriores posts y todo funcionó perfectamente. Como podrán ver:

Espero que les halla servido como para orientarse, y tengan en cuenta que esta es una instalación de desarrollo, para el end-user se puede automatizar todo el proceso.
Finalmente les dejo las URLs de la documentación de PyQt. Es del propio sitio de Riverbank: