不支持python原生multiprocessing
yuanjunchn opened this issue · 2 comments
yuanjunchn commented
不知道是嵌入式python包的问题还是PyStand的问题,调试好的有multiprocessing的程序,放入PyStand中就会发生程序多开,程序也无法正确运行。
yuanjunchn commented
感谢帮助,我用您给的参考使用如下代码
mp.freeze_support()
可以解决问题。
但加入如下判断则会报错
if not hasattr(sys, 'frozen'):
sys.frozen = True
报错为:
unknown option --multiprocessing-fork
usage: D:\miniconda3\envs\mpu\python.exe [option] u..nknown option . [---c cmmud | -m mltipod rocessing-fork
| file | -] [usage: D:\mainrg]iconda3\envs\mp ...
u\python.exe [optTry `python -h' for more infoion] ... [-c cmd | rmation-m mod | file |.
-] [arg] ...
Try `python -h' for more information.
此处报错,使用的python版本为 3.10.14, QT为PySide6。
综上,通过上面的代码可以解决该问题。同时我又试了stackoverflow上的一个帖子 https://stackoverflow.com/questions/15636266/embedded-python-multiprocessing-not-working
在使用multiprocessing.process之前添加如下语句
sys._base_executable = os.path.join(sys.exec_prefix, 'pythonw.exe')
也可以使程序正常运行。可以提供给大家做个辅助参考。
再次感谢~