在Windowns 10上用python 3部署的多处理'Pool'选项无法正常工作并给出错误

时间:2019-07-13 13:24:21

标签: python python-3.x multiprocessing python-multiprocessing

我正在尝试将多处理库用于Python3。该模块已正确导入,并且没有显示任何错误,但是使用该模块时,我遇到了错误。

这是我的代码:

from multiprocessing import Pool
import time

start_time = time.process_time()
p = Pool(10)

def print_range():
    for i in range(10000):
        print('Something')
end_time = time.process_time()
print(end_time-start_time)
p.map(print_range())

但是我收到此错误:

  

ImportError:无法从“ multiprocessing”(C:...路径文件)导入名称“ Pool”

有人遇到此错误,并且有解决方案吗?谢谢

1 个答案:

答案 0 :(得分:1)

可能与安全导入main有关。参见this section in the documentation。具体来说,您需要像这样更改代码:

from multiprocessing import Pool
import time


def print_range():
    for i in range(10000):
        print('Something')

if __name__ == '__main__':
    start_time = time.process_time()
    p = Pool(10)
    end_time = time.process_time()
    print(end_time-start_time)
    p.map(print_range()) # incorrect usage

此外,您对map()的使用不正确。有关示例,请参见文档,或改用p.apply(print_range)