Pregunta

Tengo un problema: utilicé py2exe para mi programa y funcionó en mi computadora. Lo empaqueté con Inno Setup (todavía funcionaba en mi computadora), pero cuando lo envié a una computadora diferente, recibí el siguiente error al intentar ejecutar la aplicación: & Quot; CreateProcess falló; código 14001. " La aplicación no se ejecutará. (Nota: estoy usando wxPython y el módulo de multiprocesamiento en mi programa). Busqué en Google un poco y descubrí que el usuario debería instalar algo redistribuible de MS, pero no quiero complicarles la vida a mis usuarios. ¿Hay alguna solución?

Versiones:

Python 2.6.2c1, py2exe 0.6.9, Windows XP Pro

¿Fue útil?

Solución

Debe incluir msvcr90.dll, Microsoft.VC90.CRT.manifest y python.exe.manifest (renombrado a [yourappname] .exe.manifest) en su directorio de instalación. Estos archivos estarán en el directorio Python26 de su sistema si instaló Python con & Quot; Solo para mí & Quot; opción.

Las instrucciones para hacerlo se pueden encontrar aquí .

No olvides llamar a multiprocessing.freeze_support () en su función principal también, o tendrá problemas cuando comience un nuevo proceso.

Mientras que otros han discutido incluir el tiempo de ejecución de MSVC en su paquete de instalación, la solución anterior funciona cuando solo desea distribuir un único archivo .zip que contenga todos sus archivos. Evita tener que crear un paquete de instalación separado cuando no desea esa complicación adicional.

Otros consejos

Debería poder instalar esa cosa redistribuible MS como parte de su exe de configuración InnoSetup.

Cuando ejecutas py2exe, mira de cerca los mensajes finales cuando se haya completado. Le proporciona una lista de archivos DLL que dice que el programa necesita, pero que py2exe no se agrupa automáticamente.

Muchos en la lista están disponibles de manera confiable en cualquier instalación de Windows, pero habrá algunos que debe agrupar manualmente en su instalación de Inno Setup. Algunos solo son necesarios si desea implementar en instalaciones antiguas de Windows, p. Win 2000 o anterior.

Puede enviar las DLL de tiempo de ejecución en cuestión con su aplicación como " ensamblado privado " ;. Esto simplemente significa poner una copia de un directorio con un nombre especial que contiene las DLL de tiempo de ejecución y sus manifiestos junto con su ejecutable.

Ver mi respuesta a esta publicación .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top