En 2010/02/15 22:13, Manuel Alejandro Cerón Estrada escribiu:
Hola.

El día 15 de febrero de 2010 15:53, Dr. Bobus<drbo...@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.

Espero que te sirva.

Manuel.
Hola:
A mi me pasa lo mismo, he incluido el 'msvcr90.dll' y el archivo manifiesto y nada.

este es mi setup.py
# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe

manifest = """
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
    version="0.64.1.0"
    processorArchitecture="x86"
    name="Controls"
    type="win32"
/>
<description>sync</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>
"""


setup(
     windows=[
         {'script': 'sync.py',
         "icon_resources": [(0, "./ico.ico"),(1, "./ico.ico")],
         "name":'sync',
         "version":'0.1',
         "description":'Descripción de tu aplicación',
         "author":'tu_nombre',
         "author_email":'tu_mail',
         "url":'tu_web'}],
     options={
         "py2exe":{
             "unbuffered": True,
             "optimize": 0,
             "bundle_files":1
                 }
             }
     )


Otra cosa es que si le pongo optimize a 2, no va (ni en mi equipo) da error al encontrar las bibliotecas ¿?.
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a