Python возвращает фатальную ошибку при попытке, кроме как при компиляции в pyinstaller

#python #tkinter #pyinstaller #try-except

#python #tkinter #pyinstaller #try-except

Вопрос:

Я закодировал это в своем скрипте для выполнения скрипта. Когда окно Tkinter закрыто, оно возвращает ошибку и закрывает все окна, но когда я компилирую это с помощью pyinstaller, оно возвращает мне фатальную ошибку!

 while True:
   script()
   try:
        root.update()
   except TclError:
        break
exit()
  

Могу ли я это исправить?

Комментарии:

1. Пожалуйста, предоставьте полную обратную трассировку

2. Если это приведет к ошибке с вашим файлом py, это также приведет к ошибке с вашим exe, фатальная ошибка просто означает обычную ошибку python, которая может возникнуть. Пожалуйста, исправьте отступ и в этом коде

Ответ №1:

Я столкнулся с той же ошибкой, потому что, когда пользователь закрывает окно Tkinter, а код все еще выполняется и пытается обновить переменные или экран Tkinter.

вы можете исправить это, назначив функцию закрытия для окна Tkinter, и когда пользователь нажимает на нее, вы можете остановить выполнение python.

 def close():
    '''Close UI and Python while UI Closed'''
    root.withdraw()#Close Tkinter window
    os._exit(0)#Forecefully quit PY

root = Tk()
root.protocol("WM_DELETE_WINDOW", close) #Calling close,if user clicks window close.
  

Комментарии:

1. Но когда я пытаюсь использовать модуль протокола, программа выдает ошибку

2. Как? Я выполняю это с помощью cmd? Потому что в python или при компиляции он не отображает никаких ошибок

3. Откройте cmd и перейдите в папку, введите имя скрипта и введите