Soy muy nuevo en Python en general, pero hice una aplicación en Python 2.6/wxPython 2.8 que funciona perfectamente cuando la ejecuto a través de Python. Pero quería dar un paso más y poder implementarlo como un ejecutable de Windows, así que he estado probando py2exe. Pero no he podido hacer que funcione. Siempre compilaría un exe, pero cuando realmente intento ejecutarlo, ladra un mensaje de error críptico. Al principio eran simples mensajes diciendo que no podía encontrar ciertos archivos DLL, pero incluso después de darle todas las DLL que quería, que ahora vuelve esto:¿Cómo debo depurar una aplicación py2exe 'la aplicación no se pudo inicializar correctamente' error?
The application failed to initialize properly (0xc0000142).
Click OK to terminate the application.
Así que rompieron las cosas y que acaba de hacer un muy, muy aplicación simple utilizando wxPython solo para ver si eso funcionaría, o si algunas de las características más complicadas de mi aplicación original se interponían en el camino. Pero incluso mi simple prueba arrojó el mismo error. Aquí está el código por la simple escritura de la prueba:
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, wx.ID_ANY, title, style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX)
panel = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL | wx.CLIP_CHILDREN | wx.FULL_REPAINT_ON_RESIZE)
main_sizer = wx.BoxSizer(wx.VERTICAL)
testtxt = wx.StaticText(panel, -1, label='This is a test!')
main_sizer.Add(testtxt, 0, wx.ALIGN_CENTER)
panel.SetSizerAndFit(main_sizer)
self.Show(1)
return
app = wx.PySimpleApp()
frame = MainWindow(None, -1, 'Test App')
app.MainLoop()
y aquí está la secuencia de comandos de configuración py2exe utilicé:
#!/usr/bin/python
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>Test Program</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": "testme.py",
"icon_resources": [(1, "testme.ico")],
"other_resources": [(24,1, manifest)]
}
],
data_files=["testme.ico"]
)
Luego ejecutar python setup.py py2exe
, genera el archivo EXE, advierte sobre algunos archivos DLL (que posteriormente copio en el directorio dist), pero cuando trato de ejecutar el EXE, obtengo el error que cité arriba inmediatamente.
-1: Título de pregunta terrible. Quizás esto debería ser: "¿Cómo puedo depurar una aplicación py2exe 'no pudo inicializar correctamente' error?" –
Perdón por el título, S.Lott. Ahora ha sido cambiado. – SoaperGEM