_tkinter.TclError: invalid command name ".!canvas" Ошибка с функцией

В общем, проблема в том, что у меня возникает ошибка _tkinter.TclError: invalid command name ".!canvas". Я абсолютно не понимаю, почему именно она возникает. Я смотрел другие решения данной проблемы, там говорят про "mainloop", хотя, казалось бы, он у меня есть, но проблема у меня остаётся.

Смысл программы в том, чтобы вводить название государства в соответствующем окне и нажать на кнопку, после чего высветится информация о данной стране и её местоположение на карте (будет вставляться другая карта, заместо старой).

Возможно, что часть кода действует вне "mainloop", но если это даже и так, то у меня нету идей, как это исправить.

Вот весь программный код:

from tkinter import Tk, Canvas, Button 
from tkinter import *
import tkinter as tk
from tkinter import ttk
from tkinter import scrolledtext
from tkinter.ttk import Combobox
from tkinter.ttk import *
import io
from tkinter import font 

from pathlib import Path

from PIL import Image

import os

import sys




#-------------------------------Лаунчер--------------------------------------------------------------

winL=Tk()
winL.geometry("400x500") #Размер окна ("1500x900" - IT-Куб) /1,25
winL.title("Размер окна программы")
winL.configure(bg="lightblue") #lightblue - светло-синий
winL.resizable(width=False,height=False)







#__________________________--СТРАНЫ--_________________________________________________________

#---------Списки------------------------------------------------------------------------------

List_Stran_OSNOVA = ["Австрия" , #1
"Албания", #2
"Андорра",
"Другие"]  #47



List_Stran_Show = '''----А----
Австрия 
Албания 
Андорра 
'''  #47


#----------Функции стран-----------------------------------------------------------

def Austria(): #1
    global img_kart_put, window1, KARTA_OSNOVA



    if Mashtab=="1280x800":
        canva.delete(KARTA_OSNOVA)

        img_kart_put="Карта Европы/AustriaMap_for_1280.png"

        img_kart_put_img = PhotoImage(file= Path(img_kart_put).absolute(), master=window1)
        KARTA_OSNOVA=canva.create_image(400*Masht_obv_x_MN, 420*Masht_obv_y_MN, anchor=CENTER, image=img_kart_put_img)


    #print (img_kart_put)

    #window1.mainloop()
    return KARTA_OSNOVA

def Albania(): #2
    pass

def Andorra():
    pass

def Other(): #4
    pass


#------------ВСЁ ОСТАЛЬНОЕ---------------------------------------------------------


img_kart_put=""   # - Карта


Mashtab="300x300"#масштаб окна программы
MashT=""#Переменная для определения "16:9" и "16:10"


Masht_obv_x_MN=1   
Masht_obv_y_MN=1   


POISK_Stran_IMG=""


FONT_List_country=""


#MNOJITELь=0,59296875 #0,593
 

#ФУНКЦИИ размеров окна основной программы


#16:10 - функции

def com_1280x800(): 
    global Mashtab, MashT, img_kart_put, POISK_Stran_IMG

    global FONT_Entry_country, FONT_List_country


    global Masht_obv_x_MN, Masht_obv_y_MN

    Masht_obv_x_MN=1280/1280 #1
    Masht_obv_y_MN=800/800

    FONT_Entry_country="Arial 25"
    FONT_List_country="TimesNewRoman 15"


    Mashtab="1280x800" 
    MashT="16:10"


    

    img_kart_put="Карта Европы/EuroMap_for_1280.png" #\
    POISK_Stran_IMG='Кнопки/POISK_Stran_50x50R.png'
    return Mashtab, MashT, img_kart_put, Masht_obv_x_MN, Masht_obv_y_MN, FONT_Entry_country, POISK_Stran_IMG, FONT_List_country

#16:9 функции

def com_1280x720(): 
    global Mashtab, MashT, img_kart_put, POISK_Stran_IMG

    global FONT_Entry_country, FONT_List_country

    global Masht_obv_x_MN, Masht_obv_y_MN

    Masht_obv_x_MN=1280/1280 #1
    Masht_obv_y_MN=720/720

    FONT_Entry_country="Arial 23"
    FONT_List_country="TimesNewRoman 15"

    Mashtab="1280x720"
    MashT="16:9"

    img_kart_put="Карта Европы/EuroMap_for_1280.png"
    POISK_Stran_IMG='Кнопки/POISK_Stran_45x45R.png'
    return Mashtab, MashT, img_kart_put, Masht_obv_x_MN, Masht_obv_y_MN, FONT_Entry_country, POISK_Stran_IMG, FONT_List_country





def com_POISK_Stran():
    global Entry_country

    value_Entry=Entry_country.get()

    if value_Entry==List_Stran_OSNOVA[0]: #1
        Austria()
    elif value_Entry==List_Stran_OSNOVA[1]: #2
        Albania()
    elif value_Entry==List_Stran_OSNOVA[2]:
        Andorra()
    elif value_Entry==List_Stran_OSNOVA[3]: #4
        Other()



    return value_Entry






def com_List_Stran():


    color="grey"

    window2=Tk()
    window2.geometry("400x500")
    window2.title("Государства Европы")
    window2.configure(bg=color)
    window2.resizable(width=False,height=False)


    Scroll_List_Stran=scrolledtext.ScrolledText(window2, width=60, height=50, font="TimesNewRoman 15" )
    Scroll_List_Stran.insert(INSERT, List_Stran_Show)
    Scroll_List_Stran.configure(state ='disabled') 

    Scroll_List_Stran.pack()




    window2=mainloop()




def com_OPEN():
    global img_kart_put, Entry_country, window1, KARTA_OSNOVA
    

    if MashT=="16:9":

        winL.destroy()


        
        #-------------------------------Основа--------------------------------------------------------------


        #   Создаём окно
        color="grey"

        window1=Tk()
        window1.geometry(Mashtab) #Размер окна ("1500x900" - IT-Куб) /1,25    1280x720
        window1.title("IT-География")
        window1.configure(bg=color) #lightblue - светло-синий
        window1.resizable(width=False,height=False)


        #---------------------------------------------------------------------------------------------------


        canva=Canvas(window1, width=10000, height=7200, bg=color) #Создание холста (1500, 900)
        canva.pack() #Закрепление холста

        #---------------------Информация и поиск по странам

        canva.create_rectangle(800*Masht_obv_x_MN,100*Masht_obv_y_MN,1270*Masht_obv_x_MN,700*Masht_obv_y_MN, fill="lightgrey",outline="darkgrey", width=5) #здесь будет информация о стране
                    #   800 100 1270    700
        canva.create_rectangle(800*Masht_obv_x_MN,10*Masht_obv_y_MN,1270*Masht_obv_x_MN,95*Masht_obv_y_MN, fill="lightgrey",outline="darkgrey", width=5) #Здесь будет название страны
                    #   800 10  1270    95
        #---------------------------------------------------------------------------------------------------


        canva.create_rectangle(75*Masht_obv_x_MN,15*Masht_obv_y_MN,725*Masht_obv_x_MN,75*Masht_obv_y_MN, fill="lightgrey",outline="darkgrey", width=5)
                                #75 15  725 95

        Entry_country=Entry(textvariable=StringVar(),font=FONT_Entry_country)
        Entry_country.place(x=90*Masht_obv_x_MN, y=25*Masht_obv_y_MN, width=400*Masht_obv_x_MN)
                            #90 35  500



        #-Кнопки-----------------------------------------------------------------------------------------------


            #Кнопка поиска страны
        POISK_Stran_img = PhotoImage(file=Path(POISK_Stran_IMG).absolute(), master=window1)

        button_POISK_Stran = tk.Button(window1, image=POISK_Stran_img, command=com_POISK_Stran)

        button_WindPOISK_Stran = canva.create_window(520*Masht_obv_x_MN, 46*Masht_obv_y_MN, window=button_POISK_Stran)
                                                    #525 57

            #Кнопка открытия списка существующих стран Европы

        button_List_Stran = tk.Button(window1, text="Список стран", font=FONT_List_country, command=com_List_Stran,height=int(1*Masht_obv_y_MN)) # "TNM_15", height=1
        button_List_Stran.configure(width=int(14*Masht_obv_x_MN)) #12

        button_WindList_Stran = canva.create_window(635*Masht_obv_x_MN, 45*Masht_obv_y_MN, window=button_List_Stran)
                                                    #635 57

        #Вставляем карту Европы

        canva.create_rectangle(75*Masht_obv_x_MN,85*Masht_obv_y_MN,725*Masht_obv_x_MN,708*Masht_obv_y_MN, fill="lightgrey",outline="black", width=5) #Это квадрат для обводки карты
                            #  +1  +1  -1  -1      
                            #   20  87  780 847
                            #   75  65  725 693
                            #   75  85  725 708


        img_kart_put_img = PhotoImage(file= Path(img_kart_put).absolute(), master=window1)
        canva.create_image(400*Masht_obv_x_MN, 395*Masht_obv_y_MN, anchor=CENTER, image=img_kart_put_img) #400, 395


#        
        
        window1=mainloop()







    if MashT=="16:10":

        winL.destroy()

        #-------------------------------Основа--------------------------------------------------------------


        #   Создаём окно
        color="grey"

        window1=Tk()
        window1.geometry(Mashtab) #Размер окна ("1500x900" - IT-Куб) /1,25    1280x720
        window1.title("IT-География")
        window1.configure(bg=color) #lightblue - светло-синий
        window1.resizable(width=False,height=False)


        #---------------------------------------------------------------------------------------------------


        canva=Canvas(window1, width=10000, height=7200, bg=color) #Создание холста (1500, 900)
        canva.pack() #Закрепление холста

        #---------------------Информация и поиск по странам

        canva.create_rectangle(800*Masht_obv_x_MN,100*Masht_obv_y_MN,1270*Masht_obv_x_MN,770*Masht_obv_y_MN, fill="lightgrey",outline="darkgrey", width=5) #здесь будет информация о стране
                    #   800 100 1270    700
        canva.create_rectangle(800*Masht_obv_x_MN,10*Masht_obv_y_MN,1270*Masht_obv_x_MN,95*Masht_obv_y_MN, fill="lightgrey",outline="darkgrey", width=5) #Здесь будет  Название страны
                    #   800 10  1270    95





        canva.create_rectangle(75*Masht_obv_x_MN,15*Masht_obv_y_MN,725*Masht_obv_x_MN,95*Masht_obv_y_MN, fill="lightgrey",outline="darkgrey", width=5)
                                #75 15  725 95
        Entry_country=ttk.Entry(textvariable=StringVar(),font=FONT_Entry_country)
        Entry_country.place(x=90*Masht_obv_x_MN, y=35*Masht_obv_y_MN, width=400*Masht_obv_x_MN)
                            #90 35  500



        #-Кнопки-----------------------------------------------------------------------------------------------


            #Кнопка поиска страны
        



        POISK_Stran_img = PhotoImage(file=Path(POISK_Stran_IMG).absolute(), master=window1)

        button_POISK_Stran = tk.Button(window1, image=POISK_Stran_img, command=com_POISK_Stran)

        button_WindPOISK_Stran = canva.create_window(525*Masht_obv_x_MN, 57*Masht_obv_y_MN, window=button_POISK_Stran)
                                                    #525 57

            #Кнопка открытия списка существующих стран Европы

        button_List_Stran = tk.Button(window1, text="Список стран", font=FONT_List_country, command=com_List_Stran,height=1) # "TNM_15", height=1
        button_List_Stran.configure(width=12) #12

        button_WindList_Stran = canva.create_window(635*Masht_obv_x_MN, 57*Masht_obv_y_MN, window=button_List_Stran)
                                                    #635 57





        #---------------------------------------------------------------------------------------------------

        #Вставляем карту Европы

        canva.create_rectangle(75*Masht_obv_x_MN,105*Masht_obv_y_MN,725*Masht_obv_x_MN,733*Masht_obv_y_MN, fill="lightgrey",outline="black", width=5) #Это квадрат для обводки карты
                            #  +1  +1  -1  -1      
                            #   20  87  780 847
                            #   75  65  725 693
                            #75 105 725 733





        #img_kart_put = PhotoImage(file= Path("Карта Европы\ew3_Empty_map_of_Europe.png").absolute())





        img_kart_put_img = PhotoImage(file= Path(img_kart_put).absolute(), master=window1)
        KARTA_OSNOVA=canva.create_image(400*Masht_obv_x_MN, 420*Masht_obv_y_MN, anchor=CENTER, image=img_kart_put_img) #400, 400
                                        #400, 380
                                        #400, 420




        #E:\По IT-кубу\IT-География\Карта Европы\ew3_Empty_map_of_Europe.png


#        

        window1=mainloop()

        return Entry_country, KARTA_OSNOVA


def com_CLOSE():
    exit()

 
canva = Canvas(winL, width=500, height=600, bg="lightblue") 
canva.pack() 

BackGround=PhotoImage(file=Path("фон для программы/cookie.png").absolute()) #\ (на линукс: /
BC_for_Launcher=canva.create_image(0, 0, anchor="nw", image=BackGround)

canva.create_text(200,20, text="Размер окна программы", font="Arial 17", fill="black")


#16:10

canva.create_text(100,70, text="16:10", font="Arial 15", fill="black")
 

button_1280x800 = Button(canva, text="R_1280x800", command=com_1280x800) 
button_1280x800.configure(width=15) 
button_Wind1280x800 = canva.create_window(100, 100, window=button_1280x800) #1




#16:9

canva.create_text(300,70, text="16:9", font="Arial 15", fill="black")

button_1280x720 = Button(text="R_1280x720", command=com_1280x720) 
button_1280x720.configure(width=15) 
button_wind1280x720 = canva.create_window(300, 150, window=button_1280x720) #2



#Открытие основной программы и закрытие лаунчера (кнопки)

button_OPEN = Button(canva, text="Запустить", command=com_OPEN) 
button_OPEN.configure(width=15) 
button_windOPEN = canva.create_window(100, 400, window=button_OPEN) #3

button_CLOSE = Button(canva, text="Закрыть", command=com_CLOSE) 
button_CLOSE.configure(width=15) 
button_windCLOSE = canva.create_window(300, 400, window=button_CLOSE) #3








winL.mainloop()

Проблемная часть кода:

def Austria(): #1
    global img_kart_put, window1, KARTA_OSNOVA



    if Mashtab=="1280x800":
        canva.delete(KARTA_OSNOVA)

        img_kart_put="Карта Европы/AustriaMap_for_1280.png"

        img_kart_put_img = PhotoImage(file= Path(img_kart_put).absolute(), master=window1)
        KARTA_OSNOVA=canva.create_image(400*Masht_obv_x_MN, 420*Masht_obv_y_MN, anchor=CENTER, image=img_kart_put_img)
    return KARTA_OSNOVA

Ошибка:

Exception in Tkinter callback
Traceback (most recent call last):
  File "E:\Games\Python\lib\tkinter\__init__.py", line 1892, in __call__
    return self.func(*args)
  File "e:\По IT-кубу\IT-География\for StackOverFlow.py", line 171, in com_POISK_Stran
    Austria()
  File "e:\По IT-кубу\IT-География\for StackOverFlow.py", line 63, in Austria
    canva.delete(KARTA_OSNOVA)
  File "E:\Games\Python\lib\tkinter\__init__.py", line 2823, in delete
    self.tk.call((self._w, 'delete') + args)
_tkinter.TclError: invalid command name ".!canvas"

Ответы (0 шт):