Модуль tkinter выдает ошибки в выполнении программы

Задание составить меню, добавить к подпунктам пару картинок и вывести свою фамилию в текстовом редакторе при нажатии одного из пунктов подменю. Вот текст:

from tkinter import * 
 
FILENAME = "ball.gif" # файл с графическим изображением 
 
 
root = Toplevel() 
root.title('Виды спорта') 
root.geometry('800x600') 
mainmenu = Menu(root) 
root.config(menu=mainmenu) 
 
#Добавление фото 
im = PhotoImage(file = 'ball.gif') 
 
#Вставка фамилии 
surname_entry = Entry() 
surname_entry.insert(0, 'Аннова') 
surname_entry["bg"]='green' 
surname_entry["fg"]='Black', 
surname_entry["font"]='Forte 16' 
surname_entry.place(x=15, y=15) 
 
#Создаем метку с фамилией при выборе нужной опции или при нажатии определенных клавиш 
l1 = Label(root, text="") 
def place1(): 
   l1.place(x=250, y=170) 
   l1["text"] = surname_entry.get() 

def place1_1(event): 
   l1.place(x=250, y=170) 
   l1["text"] = surname_entry.get() 

root.bind('<Control-c>', place1_1) 
 
#Удаляем метку с фамилией при выборе нужной опции или при нажатии определенных клавиш 
def place2(): 
   l1.place_forget() 

def place2_2(event): 
   l1.place_forget() 

root.bind('<Control-x>', place2_2) 
 
#Устанавливаем контекстное меню для фамилии в редакторе 
def f12(): 
   b1["font"] = "Arial 12" 

def f15(): 
   b1["font"] = "Arial 15" 

def f18(): 
   b1["font"] = "Arial 18" 

def f21(): 
   b1["font"] = "Arial 21" 
 
#Создание набора опций контекстного меню 
 
pm = Menu(tearoff=0) 
pm.add_checkbutton(label="12", onvalue=0, offvalue=0, command=f12) 
pm.add_checkbutton(label="15", onvalue=1, offvalue=0, command=f15) 
pm.add_checkbutton(label="18", onvalue=2, offvalue=0, command=f18) 
pm.add_checkbutton(label="18", onvalue=3, offvalue=0, command=f21) 
 
#Отображение контекстного меню 
def pom(event): 
   x1 = event.x 
   y1 = event.y 
   if (x1 > 0 and x1 < 111) and (y1 > 0 and y1 < 24): 
       pm.post(event.x_root, event.y_root) 
 
#Создание первого меню и его подменю 
menu1=Menu(mainmenu, tearoff=0) 
menu1_2=Menu(menu1, tearoff=0) 
menu1_3=Menu(menu1_2, tearoff=0) 
menu1_4=Menu(menu1_3, tearoff=0) 
mainmenu.add_cascade(label='Силовые', menu=menu1) 
menu1.add_cascade(label='Метание', menu=menu1_2) 
menu1.add_cascade(label='Спринт', menu=menu1_2) 
menu1.add_cascade(label='Прыжки', menu=menu1_2) 
menu1.add_cascade(label='Ходьба', menu=menu1_2) 
menu1_2.add_cascade(label='На скорость', menu=menu1_3) 
menu1_2.add_cascade(label='На расстояние',menu=menu1_4) 
menu1_3.add_command(label='Большая') 
menu1_3.add_command(label='Маленькая') 
menu1_4.add_command(label='Очень большое') 
menu1_4.add_command(label='очень маленькое') 
 
#Создание второго меню 
menu2=Menu(mainmenu, tearoff=0) 
menu2_2=Menu(menu2, tearoff=0) 
menu2_3=Menu(menu2_2, tearoff=0) 
menu2_4=Menu(menu2_3, tearoff=0) 
mainmenu.add_cascade(label='Спортивные', menu=menu2) 
menu2.add_cascade(label='Волейбол', menu=menu2_2) 
menu2.add_cascade(label='Хоккей', menu=menu2_2) 
menu2.add_cascade(label='Гандбол', menu=menu2_2) 
menu2.add_cascade(label='Футбол', menu=menu2_2, image = im, compound="left") 
menu2_2.add_cascade(label='Пляжный', menu=menu2_3) 
menu2_2.add_cascade(label='На льду', menu=menu2_4) 
menu2_3.add_command(label='С сеткой') 
menu2_3.add_command(label='Без сетки') 
menu2_4.add_command(label='В зале') 
menu2_4.add_command(label='На улице') 
 
#Создание третьего меню 
menu3=Menu(mainmenu, tearoff=0) 
menu3_2=Menu(menu3, tearoff=0) 
menu3_3=Menu(menu3_2, tearoff=0) 
menu3_4=Menu(menu3_3, tearoff=0) 
mainmenu.add_cascade(label='Циклические', menu=menu3) 
menu3.add_cascade(label='Бег', menu=menu3_2) 
menu3.add_cascade(label='Гребля', menu=menu3_2) 
menu3.add_cascade(label='Плавание', menu=menu3_2) 
menu3.add_cascade(label='Триатлон', menu=menu3_2) 
menu3_2.add_cascade(label='На суше', menu=menu3_3) 
menu3_2.add_cascade(label='В воде',menu=menu3_4) 
menu3_3.add_command(label='Где') 
menu3_3.add_command(label='Когда') 
menu3_4.add_command(label='Под водой') 
menu3_4.add_command(label='На воде') 
 
#Создание четвертого меню 
menu4=Menu(mainmenu, tearoff=0) 
menu4_2=Menu(menu4, tearoff=0) 
menu4_3=Menu(menu4_2, tearoff=0) 
menu4_4=Menu(menu4_3, tearoff=0) 
mainmenu.add_cascade(label='Единоборства', menu=menu3) 
menu4.add_cascade(label='Сумо', menu=menu4_2) 
menu4.add_cascade(label='Дзюдо',  
menu=menu4_2) 
menu4.add_cascade(label='Бокс', menu=menu4_2) 
menu4.add_cascade(label='Каратэ', menu=menu4_2) 
menu4_2.add_cascade(label='Происхождение', menu=menu4_3) 
menu4_2.add_cascade(label='Стиль',menu=menu4_4) 
menu4_3.add_command(label='Азиатское') 
menu4_3.add_command(label='Греческое') 
menu4_4.add_command(label='Внешние') 
menu4_4.add_command(label='Внутренние') 
 
#Создание пятого меню 
menu5=Menu(mainmenu, tearoff=0) 
menu5_2=Menu(menu5, tearoff=0) 
menu5_3=Menu(menu5_2, tearoff=0) 
mainmenu.add_cascade(label='Кнопка', menu=menu5) 
menu5.add_command(label='Показать фамилию (Ctrl+c)', command=place1) 
menu5.add_command(label='Скрыть фамилию (Ctrl+x)',command=place2) 
 
root.mainloop()

Вот ошибки:

    Traceback (most recent call last): 
    File "C:\Users\DELL1\Downloads\test (1).py", line 24, in <module> 
    im = PhotoImage(file = 'ball.gif') 
    File "C:\Users\DELL1\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3539, in __init__ 
    Image.__init__(self, 'photo', name, cnf, master, **kw) 
    File "C:\Users\DELL1\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3495, in __init__ 
    self.tk.call(('image', 'create', imgtype, name,) + options)
    _tkinter.TclError: couldn't open "ball.gif": no such file or directory 

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