Получение «ImportError: Ошибка загрузки DLL: указанный модуль не найден» при использовании cx_Freeze даже при добавлении tcl86t.dll и tk86t.dll в - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь преобразовать файл .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. Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 10 сентября 2018

В cx_Freeze версии 5.1.1 включенные модули находятся в подкаталоге lib каталога сборки. DLL-библиотеки tcl86t.dll и tk86t.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'))]}
...