2010-04-01 7 views
5

모든 것이 장고 개발 서버에서 작동합니다. 아파치에서는 django app이 matplotlib가 사용되는 경우를 제외하고도 작동합니다. 여기에 내가 오류 얻을 것 : 파이썬 쉘에서 Matplotlib 및 WSGI/mod_python이 Apache에서 작동하지 않습니다.

No module named multiarray. 

Exception Type: ImportError 
Exception Value: No module named multiarray 
Exception Location: /usr/share/pyshared/numpy/core/numerictypes.py in <module>, line 81 
Python Executable: /usr/bin/python 
Python Version: 2.6.4 

은 모두 문이 작동 : 수입 numpy.core.multiarray 및 수입 멀티 어레이. 어떤 아이디어? 감사합니다.

numpy 파일을 살펴본 결과, 확장 모듈 'so'가있는 다중 어레이 모듈을 발견했습니다. 내 생각 엔, mod_python이이 파일을 읽지 않는다는 것입니다.

+0

파이썬 셸에서 "numpy.core.multiarray import typeinfo, ndarray, array, empty, dtype"을 수행하면 어떻게됩니까? – Mark

+0

잘 작동합니다. 오류 메시지가 없습니다. –

+0

비슷한 문제가있는 것 같습니다. 저는 py2.6, cherrypy, IIS, isapi_wsgi를 실행하고 있습니다. Matplotlib는 파이썬 셸에서 잘 작동합니다. IIS에서 pyd 모듈 (예 : matplotlib._path)을로드하려고하면 오류가 발생합니다. os.environ 및 sys.path를 확인했습니다. – e1i45

답변

8

문제가 해결되었습니다. 여기 내가 한 일이있다. 내가 가져 오기 오류가 발생되기 전에 모든

먼저, :

"어떤 모듈은 멀티 어레이 이름이 없습니다." pyshared 폴더를 추가하여

;

"하기 matplotlib 구성 데이터의 쓰기 가능한 디렉토리에 MPLCONFIGDIR을 설정하는 것이 좋습니다 /some/dir/.matplotlib을 만들 수 없습니다"

나는이 같은 오류가 발생했다 PythonPath 변수에이 오류가 없어져 가져 오기 오류가 발생했습니다. 그래서 여기

내가 그것을 해결 방법은 다음과 같습니다

가 PYTHONPATH 변수에서 pyshared 폴더를 제거.

하기 matplotlib 모듈을 가져 오기 전에이 줄을 추가

import os 
os.environ['HOME']='/some/writable/dir' 

다음, 수입 matplotlib.pyplot 또는 pylab하기 전에, 다음 줄을 추가

import matplotlib 
matplotlib.use('Agg') 
# 'Agg' or whatever your backend is. 

here를 설명되어 있습니다.

그게 전부입니다! 그것은 나를 위해 python2.5 지금 일하고 있어요. 그러나 나는 2.6에서도 작동 할 것이라고 믿는다.

+1

os.environ [ 'MPLCONFIGDIR'] = '/ tmp'도 작동합니다. – erikvw

1

Win32에서 py2.6.5에서 py2.5로 다운 그레이드하여 비슷한 문제 (ISAPI_WSGI (IIS)를 통해 pyd 모듈을로드 할 수 없음)를 해결했습니다. 이것이 다시 소개 된 Python 버그 일 것 같습니다. 예를 들어 this discussion을 참조하십시오.

+0

나는 네가 옳다고 생각한다. 나는 모든 것을 파이썬 2.5와 함께 윈도우 머신에서 작업한다. 그러나 우분투는 파이썬 2.6과 함께 제공되며 파이썬 2.5로 다운 그레이드하는 것을 매우 어렵게 만듭니다. 그 중, 현재 파이썬 버전이 2.5이면 mod_python을 설치할 수 없습니다. 리눅스 시스템에서 –