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


person Someone    schedule 13.11.2018    source источник
comment
Единственный способ создать EXE-файл с помощью PySimpleGUI — использовать PyInstaller, как показано в файле readme. Примечание... Я бы обновил ваш PySimpleGUI. Сейчас это 3.14.0.   -  person Mike from PSG    schedule 13.11.2018


Ответы (2)



  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 включить Tcl и Tk DLL, используя параметр build_exe include_files, как это сделано в тот же ответ; если вы используете cx_Freeze 5.1.1 или 5.1.0, вам нужно сделать это немного по-другому, см. этот ответ.
person jpeg    schedule 13.11.2018