我试图使用cx_Freeze 5.1.1.将.py文件转换为.exe,但每次尝试运行该文件时都会弹出ImportError:DLL加载失败.根据建议的解决方案 here和 here,我将tcl86t.dll和tk86t.dll添加到包含文件列表中.它们出现
这是我的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)] )
我正在使用Python 3.6.3和Windows 10.任何帮助将不胜感激!
在cx_Freeze版本5.1.1中,包含的模块位于构建目录的子目录库中. tcl86t.dll和tk86t.dll DLL显然也需要移动到那里.您可以通过以下修改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'))]}