2011-12-28 13 views
15

का सम्मान नहीं कर रहा है मैं वर्चुअलएन्व सेटअप के साथ चलाने के लिए WSGI प्राप्त करने का प्रयास कर रहा हूं। के रूप में वर्णित here,mod_wsgi 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 
>>> 

और मेरे httpd.conf में, मैं निम्नलिखित है:: मैं virtualenv सभी कार्य अधिकार है

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

लेकिन जब मैं अपाचे के माध्यम से एप्लिकेशन लोड करने का प्रयास, मैं निम्न त्रुटि प्राप्त करें:

[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 

मुझे क्या याद आ रही है? इस तरह की समस्या को कैसे डिबग करें?

+0

'importlib' ज्यादातर पाइथन 3 चीज है (हालांकि इसका * बहुत * छोटा सबसेट 2.7 में उपलब्ध है)। यह 2.6 में बिल्कुल मौजूद नहीं है। – Amber

+1

ठीक है, लेकिन अगर यह कमांडलाइन से काम कर रहा है, तो क्या यह अपाचे से काम नहीं करना चाहिए? – zigdon

उत्तर

18

आपकी mod_wsgi संभावित रूप से उपयोग करने के लिए मजबूर करने की कोशिश कर रहे एक अलग पायथन संस्करण के खिलाफ संकलित की गई है। उदाहरण के लिए, आप Python 2.6 का उपयोग करके निर्मित वर्चुअल वातावरण के साथ पाइथन 2.4 के विरुद्ध संकलित mod_wsgi का उपयोग नहीं कर सकते हैं।

मान्य करें कि पहले स्थान पर पायथन mod_wsgi का संस्करण किस प्रकार बनाया गया था।

+0

हाँ, लॉग में एक प्रविष्टि है जहां यह कह रहा है कि यह गलत संस्करण के खिलाफ है। ठीक है - मैं इसे '--use-python =/var/www/virtualenv/bin/python' के साथ बनाने का प्रयास करता हूं, लेकिन यह अभी भी वही चेतावनी देता है? क्या मुझे एक अलग ध्वज का उपयोग करना चाहिए? – zigdon

+1

विकल्प --with-python है, नहीं --use-Python। परिणामी mod_wsgi.so पर ldd का उपयोग करें यह सत्यापित करने के लिए कि कौन सा पायथन साझा लाइब्रेरी संस्करण का उपयोग किया जा रहा है। दस्तावेज़ http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation –

+0

@GrahamDumpleton के माध्यम से पढ़ें, मैं उत्सुक हूं ... क्या कई mod_wsgi उदाहरण चलाने के लिए कोई तरीका है (जिसे पायथन के विभिन्न संस्करणों के विरुद्ध संकलित किया गया है) एक ही अपाचे प्रक्रिया के तहत? –

संबंधित मुद्दे