2012-02-22 74 views
1

大家好,我是PP的新手,但是在用PP導入NumPy時遇到問題。在並行Python中導入NumPy

基本上我試圖做的是提交一個函數到ppserver,這取決於NumPy。我已經在代碼的一開始就使用(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對象。

回答

2

我可能是錯的,但我相信你提交這份工作的方式是錯誤的。如文檔(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"))