Вопросы к Поиску с Алисой
При работе с изображениями в Tkinter важно учитывать сборщик мусора, потому что изображения удаляются при сборке мусора, если объявить их в качестве локальных переменных. pythonru.com
Это происходит, когда при выходе из функции локальный объект удаляется сборщиком мусора, поскольку Python не знает, что он используется внутри Tk. ru.stackoverflow.com
Чтобы избежать этого, нужно сохранять ссылку на каждый объект PhotoImage до тех пор, пока окно, где он показывается, не закрыто. pythonru.com Например, можно объявить глобальный объект и хранить все картинки в нём. ru.stackoverflow.com
Также можно использовать правило, что в Python любой объект хранится в памяти до тех пор, пока на него указывает хотя бы одна переменная. python.su Тогда сборщик мусора сам освободит память, увидев, что на объект не осталось ссылок. python.su