Я недавно вернулся к проекту, который должен был остановиться примерно на 6 месяцев, и после переустановки моей операционной системы и возвращения к ней у меня происходят разные сумасшедшие вещи. Я удостоверился, что установил ту же версию (2.6) python, которую использовал ранее.
Все началось с того, что я выдал странную ошибку tkinter, с которой у меня раньше не было проблем, программа относительно проста, и 2 или 3 ошибки, которые остались при выходе, я задокументировал и не имел отношения к интерфейсу. .
Ситуация стала еще более странной, когда всплыла та же ошибка, даже после того, как я удалил поврежденный раздел кода. На самом деле, трассировка указала на строку, которой даже не было в модуле, на который она ссылалась, например: строка 262, когда модуль имел длину всего 200 строк.
После запуска совершенно нового файла для основного модуля и копирования / вставки он, наконец, обнаружил, что код, вызывающий сбой, исчез, и я перестал получать сообщение об ошибке только для того, чтобы обнаружить, что любые обновления кода, которые я сделал в другом модуле, не появляются, когда я перезапускаю программу через оболочку. (Я не забыл сохранить.) После возни с этим, конечно, старая ошибка интерфейса вернулась, только в другом разделе кода, который работал ранее.
На самом деле, если я вернусь к файлам, которые у меня были шесть месяцев назад, программа работает нормально. Однако, как только я что-то изменяю в основном модуле, ошибка интерфейса возвращается.
Вот оригинальная ошибка:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "C:\PyStuff\interface.py", line 202, in dispOne
__main__.top.destroy()
File "C:\Python26\lib\lib-tk\Tkinter.py", line 1938, in destroy
self.tk.call('destroy', self._w)
TclError: can't invoke "destroy" command: application has been destroyed
Я предполагаю, что здесь происходит что-то еще, кроме моего собственного плохого программирования. У кого-нибудь есть идеи?
Редактировать: Вспоминая, я думаю, что прочитал кое-что о плохой идее запуска программ Tkinter через оболочку IDLE, и, по крайней мере, кажется, что TclError исчез, если я вместо этого запускаю основной модуль, дважды щелкнув по Файл .pyc. Возможно, мои проблемы были просто комбинацией этого плюс проблемы с отметкой времени / PYTHONPATH, упомянутые ниже Крисом Атли и Владом?