2010-03-25 12 views
6

के तहत आवश्यक ऐप क्या कोई मुझे एक सूचक दे ​​सकता है कि मुझे अपने प्रोजेक्ट रूट पथ को पायथन पथ के साथ-साथ एप्लिकेशन को अपनी डब्लूएसजीआई फ़ाइल में जोड़ने की आवश्यकता क्यों है?परियोजना के लिए Django sys.path.append * और * डब्ल्यूएसजीआई

परियोजना बेस को 'डीजेएपी' कहा जाता है, एप्लिकेशन को 'मैप' कहा जाता है।

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') 
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../djapp') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'djapp.settings' 

अगर मैं "/../djapp/" लॉग मेरी कि 'MyApp' आयात नहीं किया जा सकता है बताता है के साथ लाइन, यहां तक ​​कि 'djapp.settings' हालांकि छोड़ है। ('djapp' को सत्यापित किया गया था)

यह अल ./manage.py कमांड के साथ ठीक से चलता है। प्रोजेक्ट फ़ोल्डर में __init__ है। अपनी परियोजना जो from myapp import foo कर रही है भीतर

site.addsitedir('/home/user/web/project/') 
site.addsitedir('/home/user/web/project/djapp') 

उत्तर

4

के बाद से djapp (Django प्रोजेक्ट फ़ोल्डर) कि भी तैनाती मैं बस project को djapp फोल्डर का नाम के अंतर्गत आता है एक मूल फ़ोल्डर में है।

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') 
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../project') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' 

पूरा फ़ोल्डर लेआउट किया जा रहा है:

host.example.com\ 
    etc\ 
    bin\ 
    project\ 
    logs\ 

और क्या आपके पास फिर इस कोड हमेशा सही है। इस तरह परियोजना को हमेशा परियोजना कहा जा सकता है :)

आशा है कि मदद करता है।

GrtzG

3

कोड मुमकिन है आप मिल गया है:

testings के लिए, मैं एक ही मुद्दा addsitedir का उपयोग कर देखते हैं।

दो विकल्प:

  • परिवर्तन यह है कि from djapp.myapp import foo, जो अनुशंसित नहीं है के रूप में यह पोर्टेबिलिटी से बचाता है करने के लिए;
  • केवल अपने डब्लूएसजीआई में djapp जोड़ें, और DJANGO_SETTINGS_MODULE को केवल 'settings' पर सेट करें।
+0

हाय डैनियल, प्रतिक्रिया के लिए thanx। पहले से ही दूसरे विकल्प की कोशिश की है, लेकिन फिर यह 'djapp.urls' आयात करने की शिकायत करता है – GerardJP