首页 > 解决方案 > 多处理工作者功能无法访问导入的 numpy 模块?

问题描述

我正在研究一个问题,即我在 multiprocess.Pool.map 中使用的工作函数无法访问我导入到当前模块中的 numpy 模块。代码是这样的:

import numpy as np
from contextlib import closing
import multiprocess as mu  

def worker_func(i):
    return np.ones(3)*i

with closing(mu.Pool(processes=6)) as pool:
    results = pool.map(worker_func, list(range(10)))
    pool.terminate()

这是一个代码示例,运行时会抛出“未找到全局变量名 np”,我理解为 worker_func 函数无法访问上面已经导入的 numpy 库。一种补救方法是在 worker_func 函数中导入 numpy。但是,我怀疑肯定有比这更好的方法,因为导入 numpy 300 万次(我打算执行的实际执行量)必须占用相当多的时间。

谢谢。

标签: numpymultiprocessingmultiprocess

解决方案


推荐阅读