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