这个问题似乎是multiprocessing.Pool的设计特征。见https://bugs.python.org/issue25053。由于某些原因,Pool并不总是与未在导入模块中定义的对象一起使用。因此,您必须将函数编写到其他文件中并导入模块。
文件: defs.py
def f(x): return x*x
档案: run.py
from multiprocessing import Poolimport defs if __name__ == '__main__': with Pool(5) as p: print(p.map(defs.f, [1, 2, 3]))
如果您使用打印或其他内置功能,则该示例应适用。如果这不是错误(根据链接),则错误地选择了给定的示例。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)