使用 multiprocessing.Process 创建的程序打包成 .exe 后不能正常运行
1):确保使用 if __name__ == "__main__"
multiprocessing
模块在 Windows 平台上依赖于这个保护机制。如果没有正确使用,可能会导致子进程重新执行整个脚本,导致无限递归。
2):当打包使用 multiprocessing
模块的应用时,您需要在入口点调用 multiprocessing.freeze_support()
。
这是为了解绑 multiprocessing
的运行时支持功能,使得多进程可以顺利运行。
3):修改 .spec
文件的 hiddenimports
多进程打包时,某些库或模块可能需要显式地包含在 hiddenimports
中。