2011-12-28 11 views
15

yerine getirmiyor. here açıklandığı gibi, mod_wsgi Bir Virtualenv kurulum ile çalıştırmak için WSGI almaya çalışıyorum WSGIPythonHome

(virtualenv)dev:/var/www/app$ which python 
/var/www/virtualenv/bin/python 
(virtualenv)dev:/var/www/app$ python 
Python 2.6.1 (r261:67515, Dec 5 2008, 22:09:34) 
[GCC 4.1.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import importlib 
>>> 

Ve httpd.conf

, ben şu var: Ben bütün çalışma hakkı VIRTUALENV sahip

WSGIPythonHome /var/www/virtualenv 
WSGIPythonPath /var/www/virtualenv/lib/python2.6/site-packages 

Ama apache üzerinden uygulamayı yüklemeye çalıştığınızda, ben aşağıdaki hatayı edinin:

[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1] mod_wsgi (pid=15026): Exception occurred processing WSGI script '/var/www/app/wsgi.py'. 
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1] File "/var/www/app/wsgi.py", line 29, in <module> 
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1]  import importlib 
[Wed Dec 28 12:28:15 2011] [error] [client 127.0.0.1] ImportError: No module named importlib 

Neyi eksik? Bu tür bir hatada nasıl hata ayıklanır? Kullanmak zorlamak için çalışıyoruz daha

+0

'importlib' çoğunlukla bir Python 3 olan (a * o * çok küçük bir alt grubu 2.7'de mevcuttur de). 2.6'da hiç mevcut değil. – Amber

+1

Tamam, ama eğer komut satırından çalışıyorsa, Apache'den çalışmamalı mı? – zigdon

cevap

18

Sizin mod_wsgi olasılıkla farklı Python sürümü karşı derlenmektedir. Örneğin, Python 2.4 ile oluşturulan bir sanal ortamla Python 2.4'e karşı derlenmiş mod_wsgi'yi kullanamazsınız. ilk etapta için inşa edildi Python mod_wsgi hangi sürümünü

doğrula.

+0

Evet, günlüklerde yanlış sürüme uyulduğunu söylediği bir girdi var. Tamam - Ben '--use-piton =/var/www/Virtualenv/bin/python' ile inşa etmeye çalışıyorum, ama hala aynı uyarı verir? Kullanmam gereken farklı bir bayrak var mı? – zigdon

+1

Bu seçenek --with-python değil --use-python'dur. Hangi Python paylaşımlı kitaplık sürümünün kullanıldığını doğrulamak için, ortaya çıkan mod_wsgi.so dosyasındaki ldd'yi kullanın. Http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation –

+0

@GrahamDumpleton adlı belgeyi okuyun, merak ediyorum ... birden fazla mod_wsgi örneğinin (python'un farklı sürümlerine karşı derlenmiş) çalıştırılması için bir yol var mı) Aynı Apache sürecinin altında mı? –

İlgili konular