如何让pyinstaller导入ttk主题?

2023-12-01

我已经完成了一个项目,如下所示

import tkinter as tk
from tkinter import ttk
import tkinter.messagebox as tmb
from ttkthemes import ThemedStyle

class UI(ttk.Frame):
    def __init__(self, parent=None):
        super(UI,  self).__init__(parent)
        self.parent = parent
        style = ThemedStyle(parent)
        style.set_theme("arc")
        self.parent.geometry("480x520")
        self.init_ui()

    def init_ui(self):
        self.parent.title("Nueva ventana heredada")
        self.entrada = ttk.Entry(self, text="ingresa")
        self.entrada.grid(row=2, column=2) 
        boton = ttk.Button(self, text="pulsame", command=self.ver)
        boton.grid(row=2, column=3)
        self.pack()

    def ver(self):
        try:
            res = int(self.entrada.get())
            print(res)
        except ValueError:
            tmb.showwarning(title = "error", message = " error")

if __name__== '__main__':
    root = tk.Tk() 
    sug = tk.Label(root, text="aqui es para escribir")
    sug.pack()
    app = UI(parent=root)
    app.mainloop()

当我使用pyinstaller创建exe时,它释放了导出的exe程序无法执行的错误:下面我保留它,因为我使用它,需要注意的是,我为程序使用了thema,我怀疑它是进口的。

pyinstaller --windowed ui.py -i icono.ico --onefile

error

致命错误! 执行脚本失败

到类似的网址https://es.stackoverflow.com/questions/118595/como-hacer-que-pyinstaller-importe-el-ttktheme


因为 ttkthemes 似乎对目录做了一些有趣的事情,所以你可以通过修改规范文件来让它工作。

从 pyinstaller 为您的应用程序生成一个spec文件,并添加以下内容(根据需要更改站点包的路径)

In the a= Analysis(..... change datas=[],to:

data= [('venv\\Lib\\site-packages\\ttkthemes', 'ttkthemes')],

并将 ttkthemes 添加到hiddenimports

hiddenimports=['ttkthemes'],

这似乎对我有用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让pyinstaller导入ttk主题? 的相关文章

随机推荐