在osx Big Sur上使用python 3.8
台词
import multiprocessing as mp
pool = mp.Pool(2)
导致错误的无限循环,但下面收集了其中的一个片段
此外,mp.freeze\u support()似乎也没有帮助
Traceback (most recent call last):
File "<string>", line 1, in <module>
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 125, in _main
exitcode = _main(fd, parent_sentinel)
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 125, in _main
prepare(preparation_data)
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 236, in prepare
prepare(preparation_data)
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 236, in prepare
_fixup_main_from_path(data['init_main_from_path'])
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
_fixup_main_from_path(data['init_main_from_path'])
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/multiprocessing/spawn.py", line 287, in _fixup_main_from_path
main_content = runpy.run_path(main_path,
File "/Users/biscuit/.conda/envs/advanced-projects/lib/python3.8/runpy.py", line 264, in run_path
main_content = runpy.run_path(main_path,
.
.
.
你知道为什么吗
编辑:
当时没有一个解决方案奏效,但今天似乎奏效了?我确实安装了一些其他软件包,这些软件包让我对依赖项进行更新,所以可能它更改了我的多处理版本,或者其他软件包版本修复了它
不管是哪种方式,现在都可以了,对不起,这对其他人没有多大帮助
特别是当启动方法为“spawn”(MacOS上的默认值)时:
只能在
if __name__ == "__main__":
块内创建子进程(创建池会创建子进程),因为子进程导入__main__
文件。当该导入发生时,文件将被执行(就像任何导入一样),并且您将递归地继续创建越来越多的子进程,除非某种事情(如if __name__ ...
块)将执行限制为仅父进程相关问题 更多 >
编程相关推荐