2012-06-22 12 views
8

संपादित करें I मिश्रित - यह दो बार मुद्रित नहीं है, चार बार नहीं।django - settings.py कई बार लोड हो रहा है?

मैं अपने settings.py

print 'ola!' 

में और स्टार्टअप पर इस डाल "ओला" बाहर दो बार छपा है! ऐसा लगता है कि मेरे pycharm django प्रोजेक्ट में कुछ गड़बड़ है ... कोई विचार क्यों ऐसा होगा? यह एक लूप या कुछ भी नहीं है (जिसे मैं जानता हूं, वैसे भी)

चीयर्स!

याय उपयोगकर्ता केवल "रोहित" जाना जाता है, टिप्पणी के अनुसार निर्धारित किया है एक समाधान यहां पाया जा सकता है कि: https://stackoverflow.com/a/2110584/1061426 ~ पुन: लोड अक्षम करने के बारे में टिप्पणी देखें।

सावधानी मेरे पास मेरा Django कोड नहीं है और अब, इसलिए मुझे नहीं पता कि नोलोड क्या करेगा। शुभकामनाएं, सैनिक।

+0

यहां जवाब मिला: http://stackoverflow.com/questions/2110545/why-is-init-module-in-django-project-loaded-twice#comment31434551_2110584 – rohit

उत्तर

6

यदि आप settings.py के भीतर थ्रेड आईडी मुद्रित करते हैं, तो आप देखेंगे कि सेटिंग.py वास्तव में दो अलग-अलग धागे पर लोड हो रहा है।

अधिक जानकारी के लिए this stackoverflow response और this article देखें।

1

Django सेटिंग्स.py के साथ कुछ अजीब चीजें करता है, और यह एक से अधिक बार निष्पादित करेगा। मुझे इसे दो बार आयात करने के लिए उपयोग किया जाता है, यह सुनिश्चित नहीं है कि क्यों PyCharm में आपको चार बार मिल रहा है। आपको settings.py में साइड-इफेक्ट्स के साथ बयान के साथ सावधान रहना होगा।

+0

क्षमा करें, मैं गलत हूं - आप सही हैं, यह दो बार प्रकट होता है – bharal

2

दरअसल जो Django सेटिंग्स के चारों ओर एक रैपर डाल रहा है। यह मूल रूप से एक ऑब्जेक्ट (सेटिंग ऑब्जेक्ट है यदि आप ऐसा चाहते हैं) जो आपको settings.WHATEVER जैसे कुछ प्रत्यक्ष सेटर्स तक पहुंच प्रदान करता है, इसलिए ऐसा लगता है कि आप सेटिंग.py direclty में वैश्विक चर का उपयोग करते हैं।

मुझे वास्तव में याद नहीं है, क्यों आयात दो बार होता है। मैंने इसे एक बार देखा जब मैंने django-dynamic-settings पर काम किया जो Django के रूप में एक बहुत ही समान दृष्टिकोण का उपयोग करता है। वैसे भी, यदि आप "जादू" में रुचि रखते हैं तो आप execute_from_command_line से शुरू होने वाले प्रवाह का पालन कर सकते हैं manage.py में कॉल करें।

1

कम से कम twice since पर एक करीबी से संबंधित प्रश्न पूछा गया है। मैं एक Django कोर डेवलपर rejected जोड़ सकता हूं कि यह किसी भी तरह का Django बग है; यह सामान्य व्यवहार है।

ग्राहम डम्प्लेटन से this भी देखें।

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