【发布时间】:2016-12-11 01:45:53
【问题描述】:
我正在使用以下测试代码:
from pathos.multiprocessing import ProcessingPool as Pool
import numpy
def foo(obj1, obj2):
a = obj1**2
b = numpy.asarray(range(1,5))
return obj1, b
if __name__ == '__main__':
p = Pool(5)
res = p.map(foo, [1,2,3], [4,5,6])
报错:
File "C:\Python27\lib\site-packages\multiprocess\pool.py", line 567, in get
raise self._value
NameError: global name 'numpy' is not defined
我在代码中做错了什么?
编辑:为什么这个问题两次被否决?
我已经安装了 numpy,并且我的解释器一直在正确使用它,直到我尝试将它用于多处理。一段时间以来,我一直在使用相同的安装进行编码。
【问题讨论】:
-
请确保您已安装 numpy。如果你的答案是肯定的:确保你已经为你实际使用的 Python 安装了它。如果您的回答是肯定的:在您的
foo函数中尝试import numpy。我认为这个问题被否决了,因为如果你问到你的错误,谷歌会返回很多答案。 -
我不确定你是否看过我对评论的编辑。也许 pathos 不知道你导入了 numpy。也许你应该把
import numpy放在你的foo函数中。 -
我该如何解决这个问题,因为我在现实生活中的例子我必须导入超过 10 个包,我不能在函数中这样做,或者这是唯一的方法吗?
-
在函数内部导入是否有效?
-
是的,当我在函数内部导入时它可以工作。
标签: python numpy multiprocessing pathos