tkinter.ttk.Treeview значок / изображение корневого узла не отображается

Проблема: Я не могу получить изображение значка рядом с корневым узлом в tkinter.ttk.Treeview. Ниже приведен тестовый код, который я использовал. Он выполнялся без ошибок, но изображение не появилось слева от корневого узла. Я попытался использовать полный путь к файлу изображения, но это не сработало. Кроме того, я попытался использовать PIL.ImageTk.PhotoImage, чтобы открыть файл изображения, но это тоже не сработало. Вместо этого появилась ошибка, как показано ниже.

Вопрос: Как заставить изображение значка появляться слева от корневого узла (или любого узла) tkinter.ttk.Treeview?

Тестовый код:

import os
import tkinter as tk
import tkinter.ttk as ttk
from PIL import Image, ImageTk

class App(ttk.Frame):

    def __init__(self, master, path):
    ttk.Frame.__init__(self, master)
    self.tree = ttk.Treeview(self)
    ysb = ttk.Scrollbar(self, orient='vertical', command=self.tree.yview)
    xsb = ttk.Scrollbar(self, orient='horizontal', command=self.tree.xview)
    self.tree.configure(yscroll=ysb.set, xscroll=xsb.set)
    self.tree.heading('#0', text='Directory', anchor='w')

    abspath = os.path.abspath(path)
    i = './icon/Home-icon_16.gif'
    root_pic = tk.PhotoImage(file=i)
    #root_pic = ImageTk.PhotoImage(i)
    root_node = self.tree.insert('', 'end', text=abspath, open=True, image=root_pic)
    l1_node = self.tree.insert(root_node, 'end', text='level 1', open=True)
    l2_node = self.tree.insert(l1_node, 'end', text='level 2', open=True)
    l3_node = self.tree.insert(l2_node, 'end', text='level 3', open=True)
    l2a_node = self.tree.insert(l1_node, 'end', text='level 2a', open=True)
    l3a_node = self.tree.insert(l2a_node, 'end', text='level 3a', open=True)

    self.tree.grid(row=0, column=0)
    ysb.grid(row=0, column=1, sticky='ns')
    xsb.grid(row=1, column=0, sticky='ew')
    self.grid()

root = tk.Tk()
path_to_my_project = os.getcwd()
app = App(root, path=path_to_my_project)
app.mainloop()

Сообщение об ошибке при использовании PIL.ImageTk.PhotoImage:

root_pic = ImageTk.PhotoImage(i)
  File "/usr/lib/python3/dist-packages/PIL/ImageTk.py", line 108, in __init__
    mode = Image.getmodebase(mode)
  File "/usr/lib/python3/dist-packages/PIL/Image.py", line 296, in getmodebase
    return ImageMode.getmode(mode).basemode
  File "/usr/lib/python3/dist-packages/PIL/ImageMode.py", line 52, in getmode
    return _modes[mode]
KeyError: './icon/Home-icon_16.gif'

Главная-icon_16.gif:

Приложения: python3.5 ver3.5.1-10; python3-tk ver3.5.1-1; tk8.6 ver8.6.5-1; python3-pil.imagetk: amd64 ver3.1.2-0ubuntu1

Ответы на вопрос(1)

Ваш ответ на вопрос