我正在尝试在我的CPU上的多个核心上运行python函数,但我不断收到这个错误,说“需要超过1个值来解包”。
我将两个参数传递给map函数,第一个参数是我的函数,我希望在多个核心上运行,第二个参数是一个元组列表,我希望将它作为参数传递给我的函数。
类似这样的事情
def func(list_obj):
temp = list_obj[0]
img = list_obj[1]
arg = list()
arg.append((img1,img2))
pool = multiprocessing.Pool(processes = 2)
results = pool.map(func,arg)
print (results)
有人可以帮助我,为什么我会收到此错误以及有什么方法可以解决此错误
答案 0 :(得分:0)
我无法提供帮助,但这是一个不会产生错误的最小代码,似乎正常运行map
(但我不知道结果如何应该被退回):
import multiprocessing
results = []
def func(list_obj):
print(list_obj)
temp = list_obj[0]
img = list_obj[1]
results.append( {"temp":temp, "img":img} )
return True
if __name__=="__main__":
iterable = list()
iterable.append(("some",123))
iterable.append(("data",456))
iterable.append(("to",789))
iterable.append(("play",789))
iterable.append(("with","0ab"))
print(iterable)
pool = multiprocessing.Pool(processes = 2)
pool.map(func, iterable)
print(results)
也许你会在某个小东西上建立一个有效的东西,直到它破裂为止 - 然后你就可以得到代码来分享并获得帮助。