一年前我已经问过这个确切的问题。我的应用程序使用 Python 的多处理模块,该模块在从命令行运行时可以正常工作,但是当我使用 Pyinstaller 将其打包为可执行文件时,多个进程会作为原始实例的新实例生成,而不是运行它们应该运行的函数。上次给我的建议以及我在其他地方看到的建议是multiprocessing.freeze_support(
在我的块开始时调用 ),if __name__ == "__main__":
我一直在这样做,但由于某种原因我突然又遇到了这个问题。还有什么可能导致这种情况?
更新:我已经确认 freeze_support() 行的存在根本不会影响这个问题。评论它或取消评论它会给出完全相同的行为:主窗口的副本被打开并坐在那里什么都不做。这是在我的主要 Python 模块的最末端调用它的块:
if __name__ == '__main__':
freeze_support()
# (A bunch of commented-out lines)
main()