我用tkinter构建的GUI程序有以下主要部分。在
if __name__ == '__main__':
root = Tk()
my_gui = DataExtractorUI(root)
root.mainloop()
DataExtractor在单击按钮时调用另一个函数。所述功能内部有多个处理任务。在
当从命令行运行时,GUI运行得非常好。在
当使用pyinstaller或cx_Freeze编译为exe时,该程序继续生成windows 1+个进程,并且无法按预期工作。在我的pyinstaller规范文件中:
^{2}$我在一开始的命令行版本中遇到了同样的问题,通过添加if __name__ == "__main__"
解决了这个问题
对于exe打包工具,我不清楚它为什么要绕过__main__
入口点。在
由于python多处理为每个派生的进程启动一个新的解释器,因此每次输入新进程时都会创建额外的窗口
if __name__ == "__main__"
对于GUI程序,可以通过在程序顶部添加以下命令来解决此问题:
@codewarrior在他的回答中描述了解决的原因: Why python executable opens new window instance when function by multiprocessing module is called on windows
相关问题 更多 >
编程相关推荐