运行 .exe 文件使用 Python 多处理时出错
Error when running a .exe file using Python multiprocessing
我最近在我的一个 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...
在 运行ning 代码上执行键盘中断后,如果有帮助,我设法抢夺了 this error code。
如果你们遇到同样的问题,或者知道如何解决这个问题,请告诉我。
祝周末愉快 <3
非常感谢g.d.d.c
我所要做的就是
导入一个额外的方法
并添加一个额外的命令
代码现在看起来像这样:
from multiprocessing import Manager, freeze_support
if __name__ == '__main__':
freeze_support()
print("Starting")
manager = Manager()
print("Worked")
<风筝.com/python/docs/multiprocessing.freeze_support>
问题是...pyinstaller 有很多问题。事实上,大多数用于将 .py
文件转换为 .exe
的模块都可以。老实说,我真的不认为这是多处理的问题,但它可能是。我建议也许尝试其他模块将 .py
转换为 .exe
,例如 cx_freeze
或 auto_py_to_exe
我最近在我的一个 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...
在 运行ning 代码上执行键盘中断后,如果有帮助,我设法抢夺了 this error code。
如果你们遇到同样的问题,或者知道如何解决这个问题,请告诉我。 祝周末愉快 <3
非常感谢g.d.d.c
我所要做的就是
导入一个额外的方法
并添加一个额外的命令
代码现在看起来像这样:
from multiprocessing import Manager, freeze_support
if __name__ == '__main__':
freeze_support()
print("Starting")
manager = Manager()
print("Worked")
<风筝.com/python/docs/multiprocessing.freeze_support>
问题是...pyinstaller 有很多问题。事实上,大多数用于将 .py
文件转换为 .exe
的模块都可以。老实说,我真的不认为这是多处理的问题,但它可能是。我建议也许尝试其他模块将 .py
转换为 .exe
,例如 cx_freeze
或 auto_py_to_exe