【问题标题】:Get exe with Pyinstaller including pygubu使用 Pyinstaller 获取 exe,包括 pygubu
【发布时间】:2020-09-14 14:28:27
【问题描述】:

我想生成一个可移植的 python 应用程序,我可以分享给我的同事。

我使用 pygubu 创建了一个 tkinter GUI,并希望使用 pyinstall 生成一个 exe 文件。

pyinstaller PythonAppGUI.py 命令之后,我得到了一个 exe。 如果我运行 exe,则会弹出一个命令窗口一秒钟并关闭 ifself。

有什么解决方案可以让我将 pygubu 模块与 pyinstaller 一起使用。互联网上提供的所有其他解决方案都没有真正的帮助。

非常感谢。

我试图用来生成 exe 的 python 模板代码。 在同一文件夹中是 GUI 的 pyapp.ui-文件

import tkinter as tk
import pygubu


class Menu:
 
    def __init__(self, master):

        self.master=master
        #Create builder
        self.builder = builder = pygubu.Builder()
        #Load ui file
        builder.add_from_file('pyapp.ui')
        #Create a widget, using master as a parent
        self.mainwindow = builder.get_object('mainframe', master)

        #Connect callbacks
        builder.connect_callbacks(self)
    
    def but1(self):
        pass

    def but2(self):
        pass
    
               

if __name__ == '__main__':
    #Start Menu GUI
    root = tk.Tk()
    app = Menu(root)
    root.mainloop()

【问题讨论】:

    标签: python pyinstaller pygubu


    【解决方案1】:

    Pyinstaller 可能没有自动添加pyapp.ui 到目录,试试吧;

    pyinstaller --add-data "pyapp.ui;." PythonAppGUI.py
    

    该命令将pyapp.ui 复制到我认为PythonAppGUI.py 期望的可执行文件的根目录

    【讨论】:

    • 谢谢,但仍然无法打开 GUI。当我右键单击 PythonAppGUI.py 文件并用“Python”打开它时,我得到了相同的行为。它似乎只适用于“python PythonAppGUI.py build”命令。 Pygubu 我还缺少什么?
    • 你试过app.run()而不是root.mainloop()吗?
    • 是的,我也试过了:app = Menu() app.run()
    • 由于某种原因 pyinstaller 没有将 pygubu 添加到可执行文件中,我尝试使用 --hidden-import pygubu 没有成功
    • 我已经调查过了,但我没有成功,如果我发现任何有用的信息,我会告诉你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2022-01-25
    相关资源
    最近更新 更多