具有多个参数的池名称错误
Pool name error with multiple arguments
我正在尝试使用多处理模块并行化 Python 2.7 中的一个函数。不幸的是,在我的池函数中,我似乎在传递多个参数时出错。我试图将它们打包为元组列表、class 和列表列表,所有这些似乎都给我以下错误:
File "plot_gfs.py", line 132, in plot_data
results = pool.map(plot_var,args)
File "/opt/Python2.7/lib/python2.7/multiprocessing/pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
File "/opt/Python2.7/lib/python2.7/multiprocessing/pool.py", line 558, in get
raise self._value
AttributeError: 'str' object has no attribute 'name'
这是我的并行函数代码:
def plot_data(lats, lons, bounds):
lons2, lats2 = np.meshgrid(lons, lats)
x, y = basem(lons2, lats2)
pool = mp.Pool(4)
args = [('prmslmsl', 0, 'jet', 950, 1050, i, x, y, bounds)
for i in range(80)]
results = pool.map(plot_var, args)
pool.close()
pool.join()
注意:plot_var 函数标签是:
def plot_var(var_in):
尝试将参数作为元组传递:
results = pool.map(plot_var, (args))
或者,根据您的使用情况:
results = [pool.map(plot_var, a) for a in agrs]
我正在尝试使用多处理模块并行化 Python 2.7 中的一个函数。不幸的是,在我的池函数中,我似乎在传递多个参数时出错。我试图将它们打包为元组列表、class 和列表列表,所有这些似乎都给我以下错误:
File "plot_gfs.py", line 132, in plot_data
results = pool.map(plot_var,args)
File "/opt/Python2.7/lib/python2.7/multiprocessing/pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
File "/opt/Python2.7/lib/python2.7/multiprocessing/pool.py", line 558, in get
raise self._value
AttributeError: 'str' object has no attribute 'name'
这是我的并行函数代码:
def plot_data(lats, lons, bounds):
lons2, lats2 = np.meshgrid(lons, lats)
x, y = basem(lons2, lats2)
pool = mp.Pool(4)
args = [('prmslmsl', 0, 'jet', 950, 1050, i, x, y, bounds)
for i in range(80)]
results = pool.map(plot_var, args)
pool.close()
pool.join()
注意:plot_var 函数标签是:
def plot_var(var_in):
尝试将参数作为元组传递:
results = pool.map(plot_var, (args))
或者,根据您的使用情况:
results = [pool.map(plot_var, a) for a in agrs]