2012-11-20 5 views
7

मैं अपने डीजेंगो परियोजना को जीएई में तैनात करने की कोशिश कर रहा हूं। Appcfg.py का उपयोग करके तैनाती के बाद मुझे यह त्रुटि GAE के अंदर मिलती है। क्या कोई इस समस्या को हल करने के बारे में जानता है?मुझे Google App Engine प्रोजेक्ट में django.middleware कक्षाओं को कैसे आयात करना चाहिए?

Traceback (most recent call last): 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime 
    /wsgi.py", line 223, in Handle 
    result = handler(dict(self._environ), self._StartResponse) 
    File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django 
    /core/handlers/wsgi.py", line 219, in __call__ 
    self.load_middleware() 
    File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django 
    /core/handlers/base.py", line 47, in load_middleware 
    raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % 
    (mw_module, e)) 

    ImproperlyConfigured: Error importing middleware django.middleware.cache: "No module 
    named memcache" 

अगले कोड दिखाता है कि कैसे मिडलवेयर कक्षाएं मेरी project.settings में आयात किए जाते हैं:

from djangoappengine.settings_base import * 

.... 

MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.cache.FetchFromCacheMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
) 

इस में देख के लिए धन्यवाद।

उत्तर

5

pip install python-memcached 
+1

पाइप स्थापित करने के लिए पाइप इंस्टॉलेशन python3-memcached' 3. –

+1

@AnkitPopli कमांड python setup.py egg_info त्रुटि कोड 1/tmp/pip_build_root/python3-memcached में विफल –

1

आपका कैशिंग बैकएंड साथ स्थापित मेम्कैश शायद मेम्कैश उपयोग करने के लिए कॉन्फ़िगर किया गया है। Memcache अब google-appengine पर उपलब्ध है। आपको एपेंगेन एपीआई google.appengine.api.memcache से मेमकेचे रैपर का उपयोग करने की आवश्यकता है।

आपको django के साथ custom cache backend का उपयोग करने की आवश्यकता होगी। आपको अपने स्वयं के डीजेंगो कैश बैकएंड को लागू करने की आवश्यकता हो सकती है जो एपेंगिन के मेमकेचे एपीआई का उपयोग करता है। एक django बैकएंड को कार्यान्वित करना छोटा होना चाहिए क्योंकि एपेंगिन एपीआई के कार्यों को आसानी से django कैश बैकएंड में मैप करना पड़ता है। संदर्भ के रूप में बैकएंड लिखते समय आप django.core.cache.backends.MemcachedCache

0

का उपयोग कर सकते हैं आपके पास एक अजीब कॉन्फ़िगरेशन है, मुझे संदेह है कि आप बहुत सारी समस्याओं में भाग लेंगे।

आप django 1.4 के लिए GAE प्रदान की गई लाइब्रेरी का उपयोग कर रहे हैं, हालांकि, आपको djangoappengine आयात भी मिला है, जिसे django-nonrel के लिए डिज़ाइन किया गया है।

मुझे नहीं लगता कि जीएई लाइब्रेरी और डीजेंगो-नॉनेल एक साथ काम करता है। मुझे संदेह है कि आपको बहुत सारी अजीब त्रुटियां मिलेंगी।

यदि आप शुद्ध django-nonrel का उपयोग कर रहे थे, तो मुझे लगता है कि आपका मिडलवेयर ठीक है।

क्या यह स्थानीय रूप से काम करता है, और जब आप तैनात करते हैं तो केवल तोड़ते हैं? उस स्थिति में आप स्थानीय रूप से django-nonrel का उपयोग कर सबसे अधिक संभावना रखते हैं, लेकिन आप इसे तैनात नहीं कर रहे हैं - इसलिए जब तैनात किया गया है, तो यह GAE प्रदत्त संस्करण का उपयोग कर रहा है।

सुनिश्चित करें कि आपके प्रोजेक्ट फ़ोल्डर में django-nonrel है। और अपने app.yaml में django 1.4 को सक्षम न करें।