[Python-es] OT py2exe y windows XP

Dr. Bobus drbobus en gulic.org
Jue Mar 4 21:19:38 CET 2010


El Mon, 15 Feb 2010 16:13:20 -0500
Manuel Alejandro Cerón Estrada <ceronman en gmail.com> dijo:

> Hola.

Hola todos.

> 
> El día 15 de febrero de 2010 15:53, Dr. Bobus <drbobus en gulic.org> escribió:
> > Hola todos:
> >
> > No se si es muy correcto enviar este mensaje a esta lista, pero quería saber si puede alguien ayudarme.
> >
> > Un amigo me ha pedido un pequeño script para transformar unos ficheros antiguos dbf a algo que pueda usar (csv).
> >
> > El script lo he hecho usando el paquete dbf de Ethan Furman (ver 0.84.18) [1]. Abro los ficheros, realizo las transformaciones que me pidió y lo grabo en csv.
> >
> > El asunto funciona tan ricamente, pero mi amigo usa windows y no tiene python instalado. La cosa es que le "compilé" el script con py2exe.
> >
> > Tras "compilarlo" lo he probado en varias instalaciones windows que tengo a mano (Windows 2000, windows XP y Windows 7) y funciona perfecto. Sin embargo, a él no le funciona (usa windows XP último service Pack). Me comenta que al ejecutarlo le dice:
> >
> > "no se pudo iniciar la aplicacion porque su configuracion es incorrecta. Reinstalar aplicacion puede solucionar el problema."
> >
> > La verdad es que el programa no necesita ninguna instalación ni configuración, copiarlo en una carpeta, poner en ella los ficheros a transformar y darle doble clic. Así funciona en todas las pruebas que he hecho. No se precisan permisos de administrador ni nada por el estilo. El programa no hace nada más que abrir y cerrar ficheros. Donde lo he probado lo he ejecutado como usuario normal.
> >
> > He estado mirando en Google y sólo he encontrado una entrada que no me resuelve nada. No tengo ni idea de lo que esta diciendo Windows.
> >
> > Las opciones para la generación en py2exe fueron:
> > "py2exe":{
> >    "unbuffered": True,
> >    "optimize": 2,
> >    "excludes": ["pywin", "pywin.debugger", "pywin.debugger.dbgcon",
> >                 "pywin.dialogs", "pywin.dialogs.list",
> >                 "Tkconstants","Tkinter","tcl"
> >                 ]
> >     }
> >
> > Esto lo hice en una instalación de Python 2.6.4 usando las librerias estandar salvo la comentada para manejar ficheros dbf.
> >
> >
> > Alguna ayuda?
> 
> Tu problema ocurre porque los binarios oficiales de Python 2.6 para
> Windows son compilados con MS Visual C++ 9 y por lo tanto dependen de
> una biblioteca llamada 'msvcr90.dll'. En tus instalaciones de Windows
> el programa funciona bien porque probablemente ya tengas una
> aplicación que use esta biblioteca y la haya instalado en tu sistema.
> El mismo Python 2.6 instala esta biblioteca.
> 
> Ahora la solución es sencilla: tienes que distribuir tu programa junto
> con la librería 'msvcr90.dll' y el archivo manifiesto
> 'Microsoft.VC90.CRT.manifest'. Estos archivos deben estar en algún
> lugar de tu disco duro, pero si quieres conseguirlos fácilmente,
> instala Python 2.6 en modo "Sólo para este usuario" y te aparecerán en
> la carpeta C:\Python26 o dónde lo hayas instalado.


Muchas gracias con retraso, hice como se comenta en esta receta y efectivamente funciona. Ese era el problema.
Realicé una instalación de windows "fresca" en Virtual Box y efectivamente el programa no funcionaba y pude reproducir el error. Al instalar el MS Visual C++ 9  que instala la librería que tu comentas el programa ya funcionaba.

No he contestado antes a la lista pues mi amigo tardo "un poco" en probar la solución. Instaló la librería y el script ya le funciona.

Saludos y gracias.

Dr. Bobus

-- 
"...[Linux's] capacity to talk via any medium except smoke signals."
(By Dr. Greg Wettstein, Roger Maris Cancer Center)
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20100304/ba865db3/attachment.pgp>


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