python - Python 3.7.7 子解释器在 multiprocessing.Process 失败
问题描述
假设官方文档(The Process 类)中的以下 python 程序:
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
在我的Windows机器上针对我的3.7.7解释器运行此代码可以正常工作,没有任何问题。但是,对创建的子解释器运行相同的代码失败并出现以下错误(实际上没有异常,以下错误只会打印到控制台):C++
无法识别的选项'-c'
我假设这个错误的原因可以在spawn.py中找到(在多处理模块中,第 89 行):
...
return [_python_exe] + opts + ['-c', prog, '--multiprocessing-fork']
...
我可以通过Popen创建我的新流程。这可行,但生成的进程应该是子进程,而不是完全独立的进程。
我的问题:
为什么会出现这个错误?有没有办法通过子解释器在子解释器中生成子进程multiprocessing.Process
?
谢谢!
更新 1
正如建议的那样,添加freeze_support
修复了错误,但出现了一个新错误:
无法识别的选项“--multiprocessing-fork”
解决方案
推荐阅读
- matlab - 如何获得参数均衡器的幅度值?
- vba - 关于使用 VBA 的阿拉伯字符的建议
- javascript - 使用 JavaScript 将嵌套数组提取到父数组中
- python - 使用请求和正则表达式从网页中提取隐藏的电子邮件
- reactjs - reactjs中setState中数组的过滤数据
- python - 谷歌云存储:ModuleNotFoundError
- javascript - 如何在已经裁剪的图片上添加水印?
- arrays - 如何在定义的数组中查找值
- javascript - React Jest 测试按钮点击调用一个函数
- python - KivyMD - MDTabs - 如何获取当前活动标签名称?