python - Obteniendo "ImportError: Error en la carga de DLL: no se pudo encontrar el módulo especificado" cuando se usa cx_Freeze incluso con tcl86t.dll y tk86t.dll agregado en
tkinter cx-freeze (1)
Estoy tratando de convertir un archivo .py a .exe usando cx_Freeze 5.1.1., Pero
ImportError: DLL load failed
un
ImportError: DLL load failed
cada vez que intento ejecutar el archivo.
Basándome en las soluciones sugeridas
here
y
here
, agregué tcl86t.dll y tk86t.dll a la lista de archivos incluidos.
Aparecen en la carpeta de compilación, pero el mensaje de error sigue apareciendo.
Aquí está mi setup.py:
import sys
import os
from cx_Freeze import setup, Executable
os.environ["TCL_LIBRARY"] = r"C:/Users/Name/AppData/Local/Programs/Python/Python36-32/tcl/tcl8.6"
os.environ["TK_LIBRARY"] = r"C:/Users/Name/AppData/Local/Programs/Python/Python36-32/tcl/tk8.6"
base = "Win32GUI" if sys.platform=="win32" else None
build_exe_options = {"packages": ["winsound", "random", "time", "tkinter", "math"],
"include_files": [''tcl86t.dll'',
''tk86t.dll'']}
setup(
name = "Game",
author = "Name",
description = "game description",
options = {"build_exe": build_exe_options},
executables = [Executable("game.py", base=base)]
)
Estoy usando Python 3.6.3 y Windows 10. ¡Cualquier ayuda sería muy apreciada!
En la versión 5.1.1 de
cx_Freeze
, los módulos incluidos se encuentran en un subdirectorio
lib
del directorio de compilación.
Las
tcl86t.dll
y
tk86t.dll
aparentemente también necesitan ser movidas allí.
Puedes hacer esto con la siguiente modificación de tu script
setup.py
:
build_exe_options = {"packages": ["winsound", "random", "time", "tkinter", "math"],
"include_files": [(''tcl86t.dll'', os.path.join(''lib'', ''tcl86t.dll'')),
(''tk86t.dll'', os.path.join(''lib'', ''tk86t.dll''))]}