Как исправить ошибку при заморозке скрипта 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 перед этим.

  1. cx_Freeze пока не поддерживает Python 3.7, в нем есть ошибка. Исправление существует, но еще не выпущено, однако вы можете применить его вручную, см. Что может быть причиной фатальной ошибки Python:initfsencoding: невозможно загрузить кодек файловой системы? и Cx_freeze сбой Python3.7.0. Или вы можете вернуться к Python 3.6, если это вариант для вас.
  2. Вы проверили это C:\\Program Files\\Python37\\tcl\\tcl8.6 существует? В любом случае было бы лучше, чтобы ваш установочный скрипт динамически определял ваш установочный каталог Python, используя PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__)) как сделано в этом ответе.
  3. Вы должны сказать cx_Freeze включить библиотеки DLL Tcl и Tk, используя build_exe вариант include_files как сделано в том же ответе; если вы используете cx_Freeze 5.1.1 или 5.1.0, вам нужно сделать это немного по-другому, смотрите этот ответ.
Другие вопросы по тегам