【问题标题】:importing NumPy in Parallel Python在并行 Python 中导入 NumPy
【发布时间】:2012-02-22 21:19:10
【问题描述】:

大家,我是 PP 新手,但是在使用 PP 导入 NumPy 时遇到了问题。

基本上我尝试做的是向依赖于 NumPy 的 ppserver 提交一个函数。我在代码的开头使用 (import NumPy as nu) 导入了它,但是当我运行代码时,它给了我找不到共享对象 multiarray.so 的错误。

这里的情况完全一样:parallel python forum

代码附如下:(我在python 2.7.2 + pp 1.6.0 + numpy 1.5.1上运行)

import numpy as nu
import pylab as pl
import pp
job_server = pp.Server(secret="123456")
print "Starting pp with", job_server.get_ncpus(), "workers"

aa = GrRib()
job = job_server.submit(aa.plotwavefunc, (band,k),(nu,pl,signal))
result = job()

错误看起来像:

An error has occured during the function import
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ppworker.py", line 86, in run
    exec __fobj
  File "<string>", line 127, in <module>
ImportError: Error importing numpy: you should not try to import numpy from
      its source directory; please exit the numpy source tree, and relaunch
      your python intepreter from there.
An error has occured during the function import
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/ppworker.py", line 86, in run
    exec __fobj
  File "<string>", line 1, in <module>
  File "/usr/share/pyshared/matplotlib/__init__.py", line 135, in <module>
    from matplotlib.rcsetup import (defaultParams,
  File "/usr/share/pyshared/matplotlib/rcsetup.py", line 19, in <module>
    from matplotlib.colors import is_color_like
  File "/usr/share/pyshared/matplotlib/colors.py", line 52, in <module>
    import numpy as np
  File "/usr/share/pyshared/numpy/__init__.py", line 136, in <module>
    import add_newdocs
  File "/usr/share/pyshared/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/share/pyshared/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/share/pyshared/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/share/pyshared/numpy/core/__init__.py", line 5, in <module>
    import multiarray
ImportError: No module named multiarray

谁能帮帮我?我明白这一点,因为我将不得不更改 PP 正在寻找 pyshared 对象的目录。

【问题讨论】:

    标签: python numpy parallel-processing


    【解决方案1】:

    我可能是错的,但我认为您提交工作的方式是错误的。如文档(http://www.parallelpython.com/content/view/15/30/#QUICKSMP)所示,第三个参数(不包括“self”)是依赖函数。此外,模块必须是字符串。我假设“band”和“k”是依赖函数,因为我没有看到它们的声明:

    job = job_server.submit(aa.plotwavefunc, depfuncs = (band,k), modules = ("numpy","pylab","signal"))
    

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2017-08-13
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 2012-11-13
      • 1970-01-01
      相关资源
      最近更新 更多