2010-06-22 11 views
9

कभी-कभी जब मैं manage.py चलाता हूं तो मुझे लाल रंग में एक गुप्त संदेश मिलता है जो Error: cannot import name <Name> और कुछ भी नहीं कहता है।क्रिप्टिक डीबगिंग "त्रुटि: नाम <Name>" आयात नहीं कर सकता है Django

जाहिर है, यह एक साधारण आयात या वाक्यविन्यास त्रुटि है और थोड़ा सा चारों ओर देखकर, मैं आमतौर पर इसे ठीक कर सकता हूं। अन्य बार यह पता लगाने में मुझे कुछ समय लगता है कि मैंने वास्तव में क्या किया है। क्या इस स्थिति में डीजेगो को और जानकारी थूकने का कोई तरीका है?

उत्तर

11

यह एक कष्टप्रद समस्या है। सौभाग्य से, यह तय किया गया है (हाल ही में): this ticket और this patch देखें।

यदि आप अपने स्थानीय django इंस्टॉल (आप वर्चुअलनव या बिल्डआउट के तहत चल रहे हैं, है ना?) के तहत चल रहे हैं, तो अपनी django निर्देशिका (रीडमे, इंस्टाल इत्यादि के साथ) में रूट करें और इसे चलाएं:

curl "https://code.djangoproject.com/changeset/17197?format=diff&new=17197" | patch -p3\ 

इसलिए, यदि आप Django ट्रंक> 17197 चलाने के लिए, पैच अपने Django के लिए स्थापित (यह मेरे लिए 1.2 django के लिए आवेदन किया है), या Django 1.4 तक इंतजार लागू होते हैं, आप ऐसा करने में सक्षम हो जाएगा:

./manage.py shell --traceback 

और आपको केवल त्रुटि के बजाय एक पूर्ण ट्रेसबैक मिलेगा: आयात नहीं कर सकता ...

वोला!

+0

हां, virtualenv ftw। धन्यवाद। --traceback संदर्भ के लिए –

+0

+ 1-ed। धन्यवाद! –

-1

ऐसा तब होता है जब एक गोलाकार आयात प्रकट होता है, जब एक मॉडल दूसरे पर निर्भर होता है और बदले में वे कोड निष्पादित करते समय एक-दूसरे को आज़माकर आयात करते हैं।

आप उन दो मॉडलों को पेस्ट करना चाहते हैं जो आपको समस्याएं पैदा कर रहे हैं।

इससे हमें डीबग करने में मदद मिलेगी।

यह कभी-कभी संकेतों के साथ होता है, इसलिए यदि आपके पास सिग्नल फ़ाइल है तो कृपया पेस्ट करें।

+1

जैसा कि सवाल में बताया गया है, मुझे पता है कि यह आमतौर पर एक आयात त्रुटि या वाक्यविन्यास त्रुटि है। मैंने पहले ही इस मुद्दे को ठीक कर दिया है। जो भी मैं चाहता हूं वह अगली बार ऐसा होने पर इसे डीबग करने का एक प्रभावी तरीका है। –

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