python tkinter importerror cx-freeze

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''))]}