我最近在一个python项目中使用了multiprocessing
。
我会在我的终端中运行我的脚本,一切都会完美运行。然而,当我使用pyinstaller
将.py
脚本转换为.exe
时,它将不再工作。
我已经把它缩小到Manager()
方法的问题。
考虑以下代码:
from multiprocessing import Manager
if __name__ == '__main__':
print("Starting")
manager = Manager()
print("Worked")
将脚本作为.py
文件运行会输出:> Starting
> Worked
在转换为.exe
之后,脚本连续输出Starting
:> Starting
> Starting
> Starting
etc...
如果有任何帮助的话,我在对正在运行的代码执行键盘中断后,设法获取了这个错误代码。
如果你们遇到同样的问题,或者知道如何解决这个问题,请告诉我。祝你周末愉快<3
非常感谢g.d.d.c我所要做的就是
导入一个额外的方法
并添加一个额外的命令
现在的代码如下:
from multiprocessing import Manager, freeze_support
if __name__ == '__main__':
freeze_support()
print("Starting")
manager = Manager()
print("Worked")
<kite.com/python/docs/multiprocessing.freeze_support>
问题是…pyinstaller有很多问题。事实上,大多数将.py
文件转换为.exe
的模块都是这样。老实说,我真的不认为多处理有问题,但可能有问题。我建议尝试其他模块将.py
转换为.exe
,比如cx_freeze
或auto_py_to_exe