2010-06-06 10 views
5

मैं Google App Engine के लिए विंडोज लॉन्चर विकास वातावरण का उपयोग कर रहा हूं।स्थानीय डीजेगो 1.1 के साथ Google ऐप इंजन इंटरमीटेंट असफलता

मैं Django 1.1.2 स्रोत डाउनलोड किया है, और अन-tarrred "Django" उपनिर्देशिका प्रत्येक .py स्रोत फ़ाइल के शीर्ष पर अपने आवेदन निर्देशिका (app.yaml की एक सहकर्मी)

भीतर रहने के लिए, मैं यह कर:

DEBUG = True 
TEMPLATE_DIRS = ('html') 
INSTALLED_APPS = ('filters') 

import os 
os.environ["DJANGO_SETTINGS_MODULE"] = 'settings' 
from google.appengine.dist import use_library 
use_library('django', '1.1') 
from django.template import loader 

हाँ, इस तरह एक सा दिखता है:

import settings 
import os 
os.environ["DJANGO_SETTINGS_MODULE"] = 'settings' 

मेरी फाइल settings.py में (जो एप्लिकेशन निर्देशिका की जड़ में रहता है, साथ ही साथ), मैं यह कर overkill, मैं नहीं करता टी?

मैं केवल django.template का उपयोग करता हूं। मैं स्पष्ट रूप से django के किसी अन्य हिस्से का उपयोग नहीं करता हूं।

1) Django शिकायत है कि DJANGO_SETTINGS_MODULE परिभाषित नहीं है:

हालांकि, बीच-बीच में मैं दो त्रुटियों में से एक मिलता है।
2) Django शिकायत करता है कि common.html (एक टेम्पलेट जो मैं अन्य टेम्पलेट्स में विस्तार कर रहा हूं) मौजूद नहीं है।

समय के 95%, इन त्रुटियों का सामना नहीं किया जाता है, और वे यादृच्छिक रूप से बस शुरू होने लगते हैं। एक बार उस स्थिति में, स्थानीय सर्वर "wedged" लगता है और इसे फिर से बूट करने से आम तौर पर इसे ठीक करता है।

ऐसा होने का क्या कारण है, और मैं इसके बारे में क्या कर सकता हूं? मैं इसे कैसे डिबग कर सकता हूं?

Traceback (most recent call last): 
    File "C:\code\kwbudget\edit_budget.py", line 34, in get 
    self.response.out.write(t.render(template.Context(values))) 
    File "C:\code\kwbudget\django\template\__init__.py", line 165, in render 
    return self.nodelist.render(context) 
    File "C:\code\kwbudget\django\template\__init__.py", line 784, in render 
    bits.append(self.render_node(node, context)) 
    File "C:\code\kwbudget\django\template\__init__.py", line 797, in render_node 
    return node.render(context) 
    File "C:\code\kwbudget\django\template\loader_tags.py", line 71, in render 
    compiled_parent = self.get_parent(context) 
    File "C:\code\kwbudget\django\template\loader_tags.py", line 66, in get_parent 
    raise TemplateSyntaxError, "Template %r cannot be extended, because it doesn't exist" % parent 
TemplateSyntaxError: Template u'common.html' cannot be extended, because it doesn't exist 

और edit_budget.py पंक्तियां ठीक है कि मैं ऊपर शामिल साथ शुरू होता है:

यहाँ त्रुटि से ट्रैस बैक है।

सभी टेम्पलेट्स मेरी रूट निर्देशिका में "html" नामक निर्देशिका में रहते हैं, और "html/common.html" मौजूद है। मुझे पता है कि टेम्पलेट इंजन उन्हें पाता है, क्योंकि मैं "html/edit_budget.html" से शुरू करता हूं जो सामान्य.html को बढ़ाता है।
ऐसा लगता है कि सेटिंग मॉड्यूल किसी भी तरह लागू नहीं होता है (क्योंकि यह टेम्पलेट्स के लिए खोज पथ में HTML जोड़ता है)।

+0

आप पुष्टि कर सकते हैं कि settings.py आपको बताएंगे कि हमेशा एक आयातित हो रही है? sys.path के कुछ बदलाव (संभवतः वातावरण में PYTHONPATH की वजह से?) शायद (एक "गलत" settings.py के आयात के माध्यम से) व्यवहार अन्तर को स्पष्ट हो सकता है। –

+0

मैं पायथनपैथ सेट नहीं करता हूं। और, समस्या यह है कि यह पहली बार 10-20 अनुरोधों के लिए ठीक काम करता है है। तो यह "wedges," और जब यह "wedges," यह कभी नहीं ठीक हो। क्योंकि यह विकास के दौरान है, संचालकों, समय पर फेंक है, हालांकि मैं सभी अपवादों को पकड़ने और एक नैदानिक ​​+ परिणाम कोड प्रिंट, तो अपवाद WSGI क्रम अप करने के लिए बुलबुला नहीं है। मैं सोच रहा हूं कि अचानक काम करना बंद कर सकता है? –

+0

तो, उदाहरण के लिए, एक संभावित कारण विकास के वातावरण में ऑटो-reloader हो सकता है। क्या वहां कोई ज्ञात मुद्दे हैं? देखने के लिए कुछ भी? –

उत्तर

1

सबसे पहले, हालांकि डीजेंगो अब एक बार ऐप इंजन के साथ बहुत अधिक संगत है, फिर भी कुछ प्लेटफार्मों के बीच कुछ प्रमुख असंगतताएं मौजूद हैं, जिसका अर्थ है कि आप सिर्फ अपनी एपेंगिन निर्देशिका में डीजेंगो की एक स्टॉक कॉपी नहीं डाल सकते हैं और यह बॉक्स से बाहर काम करता है। चीजें अजीब तरीके से त्रुटि होगी।

ऐसी कई परियोजनाएं हैं जो दो परियोजनाओं के बीच संगतता में सुधार करने का लक्ष्य रखती हैं, सबसे प्रमुख ऐप-इंजन-पैच है। मैं अत्यधिक लेख http://code.google.com/appengine/articles/app-engine-patch.html और django टैब के नीचे code.google.com/appengine/articles/ पर स्थित शेष लेख पढ़ने का सुझाव देता हूं।

आप में से कुछ विशिष्ट समस्याओं कर रहे हैं के लिए, आप अपने सेटअप स्क्रिप्ट के भीतर इस कोशिश कर सकते हैं:

#setup django environment 
from django.core.management import setup_environ 
import settings 
setup_envion(settings) 

यह है कि क्या Django manage.py भीतर वातावरण स्थापित करने के लिए आंतरिक रूप से उपयोग करता है और सबसे अच्छा स्वीकार किया जाता है स्क्रिप्ट के साथ उपयोग के लिए django स्थापित करने के लिए अभ्यास (जैसे ऐप इंजन)।

0

मुझे बिल्कुल वही समस्या है, और मैं इसके आसपास काम करने में सक्षम नहीं हूं ... हालांकि मैंने देखा है कि वास्तविक जीएई के साथ यह बहुत कम होता है, जो विकास सर्वर के साथ करता है मेरे लिनक्स वर्कस्टेशन पर।