Progreso PyQt/GPG en windows

Chema Cortés py en ch3m4.org
Vie Oct 8 11:45:48 CEST 2004


Voy a estar ausente por una semana (son fiestas en Zaragoza :-D), así que os 
pongo hasta dónde he llegado con el tema de las PyQt para windwos, a ver si 
álguien lo acaba:

1) Instalación del MingW

He apostado por éste compilador libre. Es una versión "minimalista" del GNU 
gcc que va bastante bien.

Se descarga MinGW-3.1.0-1.exe
http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download


2) Descarga del "QT-3 Win32" desde el repositorio CVS del proyecto kde-cygwin. 
Esta descarga la he hecho desde linux, pero se podría hacer también con el 
cygwin ó con algún cliente CVS de windows (eg: wincvs)

$ cvs -d :pserver:anonymous en cvs.sourceforge.net:/cvsroot/kde-cygwin login
$ cvs -z3 -d :pserver:anonymous en cvs.sourceforge.net:/cvsroot/kde-cygwin \
  co -r QT_WIN32_3_BRANCH qt-3


3) Configurar variables de entorno y directorios

Se pasa el directorio qt-3 que nos ha traido el cvs a una carpeta de windows 
(c:\qt-3) y se configuran las variables de entorno siguientes:

set QTDIR=c:\qt-3
set MINGW=c:\MingW
set set PATH=%QTDIR%\bin;%MINGW%\bin;%PATH%
set QMAKESPEC=win32-g++


4) Antes de compilar las Qts habría que configurar bien los módulos que 
necesitamos: formatos de imágenes, plugins de sql, estilos, etc. Con 
'configure.bat -help' se ven las opciones, pero algunas están mal. Habría que 
afinar un poco más.

Así mismo, es recomendable instalar antes el QScintilla. Yo, de momento, no lo 
he intentado. Tiene una licencia similar al PyQt, con lo que habrá que 
intentar compilarlo a partir del código GPL para x11.

De momento me salto este paso 4) y seguimos !!!


5) Configuración y construcción

c:\qt-3> configure.bat

Después de un largo rato, y si no ha habido ningún problema, ya tenemos las qt 
en marcha. Podemos ejecutar las utilidades (designer, assistant, linguist) o 
ir a los tutoriales y ejemplos para probar que funcionan.


6) Versión compatible de python para MingW

El python para windows está compilado con "MS Visual C++" (msvc), que usa un 
formato propietario de librerías inapropiado para MingW. Se podría recompilar 
todo el python con MingW, pero no va a ser necesario. El propio MingW tiene 
la utilidad 'pexports' que exporta las referencias en las librerías de msvc a 
otras utilizables por mingw.

Suponiendo que el instalador ha instalado la librería 'python23.dll' en "c:
\windows\system32" :

c:\python23> pexports c:\windows\system32\python23.dll > python23.def
c:\python23> dlltool --dllname python23.dll --def python23.def \
             --output-lib libpython23.a

Copiaremos el fichero libpython23.a en c:\python23\libs para poder seguir.


7) Compilación de SIP

Se descarga desde http://www.riverbankcomputing.co.uk/sip/ y se siguen las 
instrucciones para MingW según se detalla en la documentación:

c:\sip> python configure.py
c:\sip> mingw32-make
c:\sip> mingw32-make install

Al final habrá instalado un directorio sip en c:\python23 y un módulo 
sipconfig.py


8) Compilación de PyQt

Se descarga la versión GPL para x11 y la instalación es similar al SIP:

c:\pyqt> python configure.py
c:\pyqt> mingw32-make
c:\pyqt> mingw32-make install

En el primer paso salta un error, indicando que para win32 no se puede usar 
una versión GPL de PyQt. Supongo que es un error de código, y como tengo 
"derecho" a modificar el código (tal como se reconoce en la licencia que está 
puesta al inicio), comento la línea que hace la comprobación y vuelvo a 
configurar.

Aquí se para con un error: "sip: WId not found"
Investigando un poco, veo que el único sitio donde se define esta variable es 
en qwindowsdef_x11.sip, y que no se ejecuta porque la compilación condicional 
chequea que sea la plataforma "WS_X11", cuando estamos compilando para 
"WS_WIN".

Y hasta aquí he llegado. Para seguir a partir de aquí habría dos 
posibilidades:

i) cambiar el código donde aparezca WS_X11 por WS_WIN
ii) cambiar el configure.py para que use siempre WS_WIN


A ver si alquien lo consigue.

Un saludo,
Chema
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20041008/dd49a55e/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es