【发布时间】:2020-03-22 14:13:56
【问题描述】:
我尝试在tkinter 中安装和运行带有 gui 应用程序的包。安装后我无法显示应用程序图标。我应该改变什么才能使它成为可能?这是我的包目录树:
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。安装后如何纠正它以显示图标?
【问题讨论】:
-
应该是
data_files,而不是package_data。
标签: python tkinter setuptools