gpt4 book ai didi

在 IDLE 中定义时 Python 池会无提示地崩溃

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:54 25 4
gpt4 key购买 nike

我正在尝试使用 python 的multiprocessing 包。但是,当我尝试在 IDLE 中定义池时,它会默默地崩溃(没有错误消息或回溯,IDLE 只是关闭)。另一方面,从终端执行时,相同的脚本运行没有问题。是什么赋予了?我在 Ubuntu 12.04 上使用 python 2.7。

import multiprocessing
from multiprocessing import Pool

def myfunc(x):
return x*x

cpu_count = int(multiprocessing.cpu_count() - 1)
pool = Pool(processes = cpu_count) #Crashes here in IDLE
resultlist = pool.map(myfunc, range(10))
pool.close()
print(resultlist)

最佳答案

问题是你的代码:它缺少if __name__ == '__main__':保护子句,这是每个的重要组成部分> 多处理文档章节中的工作示例,因为它可以防止每个子进程运行开始和结束代码。在空闲状态下运行以下命令(或者在没有空闲状态的情况下,在控制台中)

import multiprocessing
from multiprocessing import Pool

def myfunc(x):
return x*x

if __name__ == '__main__':
cpu_count = int(multiprocessing.cpu_count() - 1)
pool = Pool(processes = cpu_count) #Crashes here in IDLE
resultlist = pool.map(myfunc, range(10))
pool.close()
print(resultlist)

几乎立即打印

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

如果您在控制台中运行原始代码(或在控制台中启动 Idle),随着每个进程启动更多进程,您将看到无穷无尽的错误消息流。

编辑:以上行为发生在 Windows 10 上

我建议您忽略意见,并根据当前和真实的事实自行决定要使用哪些工具。尝试使用您使用的任何 Python 版本的最新错误修复版本。特别是对于 Idle,在经历了几年左右的停滞之后,在过去的两年里出现了许多修复。

关于在 IDLE 中定义时 Python 池会无提示地崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520958/

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