python - cx_freeze - Py2Exe: error de carga de DLL
py2exe tutorial (9)
Cuando intenté usar py2exe para convertir un juego Python simple que hice en formato exe, me dio el siguiente error:
Traceback (most recent call last):
File "C:/Users/Tali/Desktop/2exe.py", line 4, in <module>
setup(console=[''test.py''])
File "C:/Python/lib/distutils/core.py", line 152, in setup
dist.run_commands()
File "C:/Python/lib/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "C:/Python/lib/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "C:/Python/lib/site-packages/py2exe/build_exe.py", line 243, in run
self._run()
File "C:/Python/lib/site-packages/py2exe/build_exe.py", line 305, in _run
dlls = self.find_dlls(extensions)
File "C:/Python/lib/site-packages/py2exe/build_exe.py", line 389, in find_dlls
self.dll_excludes)
File "C:/Python/lib/site-packages/py2exe/build_exe.py", line 1021, in find_dep
endend_dlls
import py2exe_util
ImportError: DLL load failed: %1 is not a valid Win32 application.
Busqué en la web durante aproximadamente una hora, intenté cambiar cosas en mi programa. Nada funciona. Aunque mi programa utiliza la biblioteca "aleatoria", no he visto un caso en el que haya causado este tipo de problema.
El script de instalación:
from distutils.core import setup
import py2exe
setup(console=[''test.py''])
Sí, ambos scripts están en la misma carpeta (Escritorio). Si importa, estoy ejecutando Windows Vista con Python 2.7
Muchas gracias a todos por adelantado.
De sus comentarios, veo que está haciendo esto en el símbolo del sistema:
setup.py py2exe
En el tercer paso del tutorial py2exe , debes hacer esto en su lugar (en el comando promt):
python setup.py py2exe
Un segundo vistazo a los comentarios sobre la pregunta original muestra que esta sugerencia ya se ha hecho. +1 a joaquin por esto.
Para intentar responder a tu pregunta otra vez: Joaquín también mencionó que esto podría ser un problema de ruta. En lugar de intentar solucionarlo, es posible que desee considerar la opción más sencilla de copiar sus archivos de python en C: / Python. Luego en el símbolo del sistema:
cd C:/Python
python setup.py py2exe
Esto siempre me ha funcionado.
Espero que esto ayude
Estaba enfrentando el mismo problema, estaba usando Python 2.7 (32 bits) en Windows 7 (64 bits) con py2exe-0.6.9.win64-py2.7.amd64.exe
, así que el problema era que estaba usando Python de 32 bits y py2exe de 64 bits. Si no sabe si el paquete de Python que está usando es de 32 o 64 bits, ejecute idle.bat desde C:/Python27/Lib/idlelib/.
La primera línea en el indicador de la ventana de python le mostrará los detalles del paquete de python.
Desinstalé el py2exe-0.6.9.win64-py2.7.exe
ejecutando "pip uninstall py2exe"
e instalé py2exe-0.6.9.win64-py2.7.amd64.exe
que funcionó para mí.
Intente instalar el paquete redistribuible de Microsoft Visual C ++ 2008 (x86): http://www.microsoft.com/downloads/en/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en
Me encontré con el mismo problema y busqué y vine aquí. Intenté de forma rápida por xiao-yu pero no trabajé. Así que encontré esto en http://www.py2exe.org/index.cgi/Tutorial#Step52 : 5.2.1. Agrupar el DLL de tiempo de ejecución de C
Si tiene los derechos para redistribuir MSVCR90.dll, debería haber una copia en su instalación de Visual Studio, en VC / redist / x86 / Microsoft.VC90.CRT. Desde Visual Studio 2008, no puede copiar este archivo DLL, también necesita el archivo de manifiesto que encontrará allí. El archivo redist.txt indica que debe distribuir las tres dlls y el archivo de manifiesto sin modificar y es una violación del acuerdo de licencia distribuir solo una de las dlls sin las otras (aunque py2exe solo necesita MSVCR90.dll). El pasaje pertinente del archivo redist.txt es el siguiente: -----------------------
así que inténtalo.
Parece que el problema se puede resolver descargando el instalador py2exe correcto para su plataforma y versión.
Yo también tuve el mismo problema aquí. Estaba corriendo en Windows 7 64 bit y había instalado Python 2.7. Mi problema tenía que ver con el hecho de que instalé py2exe-0.6.9.win32-py2.7.exe y el instalador no pudo encontrar python, a pesar de que encontró la carpeta de instalación. La ejecución de python setup.py py2exe
en esta etapa me dio exactamente los mismos errores que está viendo.
Luego descargué py2exe-0.6.9.win64-py2.7.amd64.exe desde esta página y lo instalé. La instalación se python setup.py py2exe
a cabo sin un problema y la python setup.py py2exe
me proporcionó muchos resultados de consola, creó las carpetas de compilación y dist y el ejecutable esperado.
Puedes lidiar con py2exe y los dolores de cabeza. Intenté hacer esto, incluso cuando lo hice bien, se produciría un error, aunque encontré el excelente programa python gui2exe, esto hace que sea extremadamente fácil hacer un exe (o cualquiera de los otros). formatos soportados).
Gui2exe: http://code.google.com/p/gui2exe/downloads/detail?name=GUI2Exe_0.5.0.zip
Ejemplos: http://code.google.com/p/gui2exe/wiki/GUI2ExeExamples
Resolví este problema descargando "Microsoft Visual C ++ Compiler for Python 2.7" http://www.microsoft.com/en-pk/download/details.aspx?id=44266
Tuve exactamente el mismo problema.
Como tengo Windows 7 de 64 bits, descargué py2exe-0.6.9.win64-py2.6.amd64.exe, que supongo que es la versión de 64 bits de py2exe. pero no funcionó, y tuve el mismo error.
Cambié a py2exe-0.6.9.win32-py2.6.exe, y funcionó bien.
Supongo que tiene que hacer coincidir los de 32 bits o 64 bits con la instalación de Python en lugar de las ventanas en sí.
por cierto, "setup.py py2exe" o "python setup.py py2exe" realmente no importa, si ordenó que Windows abriera * .py con python durante la instalación de python.
py2exe se ve muy anticuado. La última versión tiene cuatro años (a partir de 2014, hoy es 2018).
La última entrada en la página principal "noticias" es de 2008 (diez años).
Supongo que es mejor usar una herramienta diferente si tiene errores con py2exe hoy.