Получение "ImportError: Ошибка загрузки DLL: указанный модуль не найден" при использовании cx_Freeze даже при добавлении tcl86t.dll и tk86t.dll в
Я пытаюсь преобразовать файл.py в.exe с помощью cx_Freeze 5.1.1., Но ImportError: DLL load failed
появляется каждый раз, когда я пытаюсь запустить файл. Основываясь на предложенных решениях здесь и здесь, я добавил 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. Любая помощь будет принята с благодарностью!
2 ответа
В cx_Freeze
версия 5.1.1, включенные модули находятся в подкаталоге lib
из каталога сборки. 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'))]}
Если ошибка такого типа возникает при импорте модулей, вы также можете сделать это: в файле setup.py добавьте это:
build_exe_options = {
"packages": [],
'include_files': [],
'include_msvcr': True ## This is important
}