numpy - 多处理工作者功能无法访问导入的 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 万次(我打算执行的实际执行量)必须占用相当多的时间。
谢谢。
解决方案
推荐阅读
- dialogflow-es - 如何使用 DialogFlow 从 Telegram 获取用户位置
- javascript - 实现打开/关闭标签功能的最佳方式
- node.js - VSCode 并使用 launch.json 启动项目
- docker - 如何解决 VBoxManage 未找到问题
- swift4.2 - 方法 collectionView (didSelectItemAt...) 在 iTunesConnect 上不起作用;但是,它确实适用于调试
- java - 将对象添加到 ArrayList 的 ArrayList
- python - 使用行向量构造二维矩阵的最简单方法是什么?
- docker - 如何修复 Docker 中的 OCI 运行时执行失败的“执行格式错误”?
- regex - 如何从字符串Scala的前面和结尾删除引号
- php - 水平对齐多个表单输入