gpt4 book ai didi

python - 多进程和错误进程已 fork ,您无法安全地使用此 CoreFoundation 功能

转载 作者:行者123 更新时间:2023-12-03 16:43:35 25 4
gpt4 key购买 nike

调用我的函数 start 并在 Python 2.7.8 上使用多处理模块时出现此错误。我使用的是 Mac OS 10.9.5。

The process has forked and you cannot use this CoreFoundation functionality safely. 
You MUST exec(). Break on __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_
COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__() to debug.

这是 Lattice 类下的代码。我的函数 sansfin 运行良好并且返回一个 bool 值,它只需要作为参数 self 和一个整数来循环。
    def start(self):
if __name__ == '__main__':
self.run = True
p = Process(target=self.sansfin, args=(1000,))
p.start()
p.join()

def stop(self):
self.run = False

我对这个消息很迷茫。我在那里和其他地方没有发现任何有用的东西。有些人建议一个错误...

最佳答案

要修复此错误,您需要显式设置 multiprocessing启动方法到 spawn在 MacOS 上。这可以通过在 if __name__ == '__main__' 正下方添加以下内容来实现.例如:

import platform, multiprocessing
...
if __name__ == '__main__':
if platform.system() == "Darwin":
multiprocessing.set_start_method('spawn')
也可以看看:
  • https://groups.google.com/forum/#!topic/psychopy-users/quulKzsQY-Y
  • https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods
  • https://bugs.python.org/issue33725
  • 关于python - 多进程和错误进程已 fork ,您无法安全地使用此 CoreFoundation 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669659/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com