Как исправить ошибку при заморозке скрипта Python 3.7 с помощью cx_Freeze
Я пытаюсь создать автономный исполняемый файл с моим скриптом Python, используя cx_Freeze. Это ошибка, которую я получаю: error: [Errno 2] No such file or directory: 'C:\\Program Files\\Python37\\tcl\\tcl8.6'
Это как-то связано с использованием такого модуля, как PySimpleGUI? я использую PySimpleGUI 3.1.2
,
Как это исправить?
Вот мой код ( setup.py и Track_Companion.py).
Note: Track_Companion.py is not yet finished.
2 ответа
Решение
Инструкции по созданию.EXE файлов из программ, использующих PySimpleGUI, можно найти в документации здесь.
Чтобы создать.EXE:
pyinstaller -wF yoursourcefile.py
Я бы обновил ваш пакет PySimpleGUI перед этим.
cx_Freeze
пока не поддерживает Python 3.7, в нем есть ошибка. Исправление существует, но еще не выпущено, однако вы можете применить его вручную, см. Что может быть причиной фатальной ошибки Python:initfsencoding: невозможно загрузить кодек файловой системы? и Cx_freeze сбой Python3.7.0. Или вы можете вернуться к Python 3.6, если это вариант для вас.- Вы проверили это
C:\\Program Files\\Python37\\tcl\\tcl8.6
существует? В любом случае было бы лучше, чтобы ваш установочный скрипт динамически определял ваш установочный каталог Python, используяPYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
как сделано в этом ответе. - Вы должны сказать
cx_Freeze
включить библиотеки DLL Tcl и Tk, используяbuild_exe
вариантinclude_files
как сделано в том же ответе; если вы используетеcx_Freeze
5.1.1 или 5.1.0, вам нужно сделать это немного по-другому, смотрите этот ответ.