您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

当使用cx_Freeze和tkinter时,我得到:“ DLL加载失败:找不到指定的模块。” (Python 3.5.3)

当使用cx_Freeze和tkinter时,我得到:“ DLL加载失败:找不到指定的模块。” (Python 3.5.3)

找到了解决方案!

我必须将tk86t.dll和tcl86t.dll文件从python目录的DLLs文件夹复制到带有尝试编译的main.py的build文件夹中。

这与

set TCL_LIBRARY=C:\Users\VergilTheHuragok\AppData\Local\Programs\Python\python35\tcl\tcl8.6  
set TK_LIBRARY=C:\Users\VergilTheHuragok\AppData\Local\Programs\Python\python35\tcl\tk8.6

在我的compile.bat的顶部,以及"include_files": ["tcl86t.dll", "tk86t.dll"] 在setup.py的build_exe_options中,似乎已经解决了这个问题。

这是我当前的setup.py:

from cx_Freeze import setup, Executable  
import sys

build_exe_options = {"packages": ["files", "tools"], "include_files": ["tcl86t.dll", "tk86t.dll"]}

base = None  
if sys.platform == "win32":  
    base = "win32gui"

setup(name="Name",  
    version="1.0",  
    description="Description",  
    options={"build_exe": build_exe_options},  
    executables=[Executable("main.py", base=base)],  
    package_dir={'': ''},  
    )

这是我的compile.bat(已更新以显示所有步骤):

@echo off
set TCL_LIBRARY=C:\Users\VergilTheHuragok\AppData\Local\Programs\Python\python36-32\tcl\tcl8.6
set TK_LIBRARY=C:\Users\VergilTheHuragok\AppData\Local\Programs\Python\python36-32\tcl\tk8.6
RD /S /Q "C:\Users\VergilTheHuragok\Desktop\PythonProjectCompiled\bin"
mkdir "C:\Users\VergilTheHuragok\Desktop\PythonProjectCompiled\bin"
xcopy /s "C:\Users\VergilTheHuragok\AppData\Local\Programs\Python\python36-32\DLLs\tcl86t.dll" "C:\Users\VergilTheHuragok\Desktop\PythonProjectCompiled\bin\tcl86t.dll"
xcopy /s "C:\Users\VergilTheHuragok\AppData\Local\Programs\Python\python36-32\DLLs\tk86t.dll" "C:\Users\VergilTheHuragok\Desktop\PythonProjectCompiled\bin\tk86t.dll"
cd "C:\Users\VergilTheHuragok\Desktop\PythonProject\"
cxfreeze main.py --target-dir "C:\Users\VergilTheHuragok\Desktop\PythonProjectCompiled\bin" --target-name "launch.exe"
pause

python 2022/1/1 18:47:56 有680人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶