2010-04-01 18 views
5

Her şey, Django geliştirme sunucusunda olduğu gibi çalışır. Apache'de, django uygulaması matplotlib kullanıldığında da çalışır. İşte hata nereden çıkabilir: piton kabuk itibaren Apache üzerinde çalışmayan Matplotlib ve WSGI/mod_python

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 

, hem ifadeler çalışır: import numpy.core.multiarray ve ithalat multiarray. Herhangi bir fikir? Teşekkürler

Numune dosyalarını incelediğimde, 'öylesine' uzantısına sahip olan çoklu dizi modülünü buldum. Tahminim, bu mod_python bu dosyaları okumaz.

+0

"numpy.core.multiarray import typeinfo, ndarray, array, empty, dtype" ifadesini python kabuğundan yapıyorsanız ne olur? – Mark

+0

iyi çalışıyor. hata mesajı yok. –

+0

Benzer bir sorunum var gibi görünüyor. Ben py2.6, cherrypy, IIS, isapi_wsgi koşuyorum. Matplotlib, Python kabuğundan düzgün çalışıyor. IIS tarafından çağrıldığında pyd modüllerini (örneğin, matplotlib._path) yüklemeye çalışmak başarısız olur. Os.environ ve sys.path'i kontrol ettim. – e1i45

cevap

8

Sorun çözüldü. İşte yaptığım şey. Ben ithalat hata alıyorum önce tüm

Öncelikle:

"Hayır modül multiarray adlandırılmış." pyshared klasör ekleyerek

;:

": matplotlib yapılandırma verileri için yazılabilir bir dizine MPLCONFIGDIR düşünebilir /some/dir/.matplotlib oluşturulamadı"

böyle bir hata başlamıştı PythonPath değişkenine, bu hata gitti ve alma hatası aldım. Yani burada

tamir ettim nasıl:

PYTHONPATH değişkeninden pyshared klasörü kaldırıldı.

matplotlib modülünü içe aktarmadan önce, şu satırları ekleyin:

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

Sonraki, ithalat matplotlib.pyplot veya PyLab önce şu satırları ekleyin:

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

Bu here belgelenmiştir.

İşte budur! Şimdi benim için python2.5 üzerinde çalışıyor. Ama ben 2.6 da çalışacağına inanıyorum.

+1

os.environ ['MPLCONFIGDIR'] = '/ tmp' de çalışır. – erikvw

1

Win32'da Benzer bir sorunu (p.2 modüllerini ISAPI_WSGI (IIS) üzerinden yükleyemedim) py2.6.5'ten py2.5'e düşürerek çözdüm. Bu yeniden tanıtıldı bir Python böcek olabilir gibi görünüyor. Bakınız örneğin this discussion.

+0

Sanırım haklısınız. Python 2.5 ile bir windows makinesinde çalışan her şeye sahibim. Ancak, Ubuntu python 2.6 ile birlikte geliyor ve python 2.5'e düşürmek çok zor. Bunun üzerine, mevcut python sürümünüz 2.5 ise mod_python'u yükleyemezsiniz. Bir linux sistemi üzerinde –

İlgili konular