Я пытаюсь установить и запустить пакет с приложением gui в tkinter
. Я не могу отобразить значок приложения после установки. Что я должен изменить, чтобы сделать это возможным? Вот мое дерево каталогов пакетов:
gui_app/
| gui_app/
| __init__.py
| __main__.py
| img/
| icon.gif
| setup.py
setup.py
содержит:
from setuptools import setup
from gui_app import __version__
setup(
name='gui_app',
version=__version__,
packages=['gui_app'],
data_files=[('', ['img/icon.gif'])],
entry_points={'gui_scripts': ['gui_app = gui_app.__main__:main'],},
)
Чтобы загрузить мою иконку, я попробовал различные подходы, описанные здесь: pkgutil , importlib.resources . К сожалению, никто из них не работал для меня. Я могу сделать что-то не так. Вот код, с которым я закончил:
import tkinter as tk
from importlib.abc import ResourceReader as res
def get_path_before_install():
return 'img/icon.gif'
def get_path_after_install():
return res.resource_path('.', 'icon.gif')
def display_gui():
root = tk.Tk()
icon_path = get_path_after_install()
icon = tk.PhotoImage(file=str(icon_path))
root.iconphoto(False, icon)
root.mainloop()
def main():
display_gui()
if __name__ == '__main__': main()
Когда я использую $ pip install .
, а затем $ gui_app
, получается FileNotFoundError
. Как я могу исправить это, чтобы отобразить значок после установки?