使用python多处理创建池时的属性错误

时间:2017-03-17 23:03:38

标签: python multiprocessing pool attributeerror python-3.6

我正在尝试使用 Python 3.6 中的 multiprocessing.Pool.map 函数(使用Windows 10)来加速一些代码,否则需要一个小时运行

我已将大量“ blobs ”拆分为较小的列表,并且目标是使用映射函数一次处理少量 blob

我试图尽可能地遵循我发现的示例,但遇到了意外错误。我写的代码如下:

import multiprocessing as mp

def function(arg):
    blob,image1,image2 = arg
    #does stuff to a blob using image1 and image2 get a string and an array
return [string,array]

if __name__ == '__main__':
    pool = mp.Pool(processes=4) 
    for(i in range(len(biglist))): #Each element is a smaller list which contains blobs
        blobcount = len(biglist[i])            
        print("Processed "+str(100*i/len(biglist)+"%")
        argslist = list(zip(biglist[i],[image1]*blobcount,[image2]*blobcount))
        results = pool.map(function,argslist)

        for i in range(len(results)):
            cataloguefile.write(results[i][0])      
    pool.close() 
    pool.join() 

当我运行代码时,我在池创建行上收到此错误消息:

AttributeError: module '__main__' has no attribute '__spec__'

这是完整控制台输出的screenshot

很抱歉,如果这是一个愚蠢的错误,但我无法理解。

0 个答案:

没有答案