2012-02-22 4 views
1

누구나 PP에 익숙하지 만 PP로 NumPy를 가져올 때 문제가 발생합니다.Parallel Python에서 NumPy를 가져 오는 중

기본적으로 NumPy에 의존하는 ppserver에 함수를 제출하려고했습니다. 나는 (NumPy를 nu로 가져 오는) 코드의 시작 부분에서 가져 왔지만 코드를 실행했을 때 공유 객체 multiarray.so를 찾을 수없는 오류가 발생했습니다.

상황은 정확히 여기에 동일 아래로 parallel python forum

코드가 첨부 : (I 파이썬에서 실행하고 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")) 
관련 문제