Python:"int not callable" 带池的多处理
Python: "int not callable" with multiprocessing with pool
我在使用池进行一些多处理时遇到错误(pop 索引超出范围),当我试图将我的代码简化为 post 时,我在这里遇到了另一个错误,所以这有点令人费解,请参阅代码在这里:
def some_function(a, b):
return a*b
neigbhourhood = [[object() for _ in range(3)] for _ in range(3)]
result = [[object() for _ in range(3)] for _ in range(3)]
pool = Pool()
for i in range(0, 3):
for j in range(0, 3):
neigbhourhood[i][j] = pool.apply_async(some_function(i, j))
for k in range(0, 3):
for l in range(0, 3):
result[k][l] = neigbhourhood[k][l].get()
pool.close()
追溯是关于第 34 行(带有 get 的行)处不可调用的 int 对象。
编辑:好的,这只是 pool.apply_async 参数中的一个输入错误,现在可以正常工作了,但我的真实代码仍然随机崩溃,并且在简化代码时我无法重复该错误, 没看懂
问题在于您调用的方式 apply_async
。它要求您传递函数回调和将传递给提供的函数的参数。
pool.apply.async(some_function, [x, y])
我在使用池进行一些多处理时遇到错误(pop 索引超出范围),当我试图将我的代码简化为 post 时,我在这里遇到了另一个错误,所以这有点令人费解,请参阅代码在这里:
def some_function(a, b):
return a*b
neigbhourhood = [[object() for _ in range(3)] for _ in range(3)]
result = [[object() for _ in range(3)] for _ in range(3)]
pool = Pool()
for i in range(0, 3):
for j in range(0, 3):
neigbhourhood[i][j] = pool.apply_async(some_function(i, j))
for k in range(0, 3):
for l in range(0, 3):
result[k][l] = neigbhourhood[k][l].get()
pool.close()
追溯是关于第 34 行(带有 get 的行)处不可调用的 int 对象。
编辑:好的,这只是 pool.apply_async 参数中的一个输入错误,现在可以正常工作了,但我的真实代码仍然随机崩溃,并且在简化代码时我无法重复该错误, 没看懂
问题在于您调用的方式 apply_async
。它要求您传递函数回调和将传递给提供的函数的参数。
pool.apply.async(some_function, [x, y])