Django आयात त्रुटि - django.conf.urls.defaults नाम का कोई मॉड्यूल नहीं


93

मैं आँकड़ों / ग्रेफाइट को चलाने की कोशिश कर रहा हूँ जो django 1.6 का उपयोग करता है।

ग्रेफाइट URL एक्सेस करते समय, मुझे django मॉड्यूल त्रुटि मिलती है

फ़ाइल "/opt/graphite/webapp/graphite/urls.py", पंक्ति 15, django.conf.urls.defaults से आयात करें * ImportError: कोई भी मॉड्यूल जिसका नाम चूक नहीं है

हालाँकि, मुझे डिफाल्टो django पैकेज के अंदर नहीं मिला/Library/Python/2.7/site-packages/django/conf/urls/

कृपया इस समस्या को ठीक करने में सहायता करें।


4
आप किस django वर्जन का उपयोग कर रहे हैं?
युवी

1
अजगर-सी "आयात django; प्रिंट (django.get_version ())" 1.6
GJain

जवाबों:


193

django.conf.urls.defaults Django 1.6 में हटा दिया गया है । यदि समस्या आपके अपने कोड में थी, तो आप इसे आयात में बदलकर ठीक कर देंगे

from django.conf.urls import patterns, url, include

हालाँकि, आपके मामले में समस्या एक तृतीय पक्ष ऐप, ग्रेफाइट में है। इस मुद्दे को ग्रेफाइट की मास्टर शाखा और संस्करण 0.9.14+ में तय किया गया है

Django 1.8+ में आप patternsआयात से हटा सकते हैं, और url()इसके बजाय s की सूची का उपयोग कर सकते हैं ।

from django.conf.urls import url, include

यह भी जांचें कि क्या आपने अपनी सेटिंग्स में ROOT_URLCONF सेट किया है! इस चर को भी अनुकूलित करना होगा। मेरे मामले में यह ROOT_URLCONF = 'urls' था और इसे बदलकर ROOT_URLCONF = 'app.urls' में बदल दिया गया
Lukas Schulze

पैटर्न हटा दिए गए हैं। आप सीधे पैटर्न का उपयोग करने के बजाय यूआरएल को जोड़ने के लिए एक अजगर सूची का उपयोग कर सकते हैं।
अक्षय हजारी

@ आल्साडेयर django 1.6 के एक कोड के साथ काम कर रहा था और यहां डिफॉल्ट्स रिप्लेसमेंट पाया गया। बस जवाब में जोड़ रहा था। ताकि किसी और को एक जगह पर सभी मदद मिल सके।
अक्षय हजारी

3

यदि किसी कारण से आप Django 1.5.x पर डाउनग्रेड नहीं करना चाहते हैं या ग्रेफाइट को अपग्रेड करना चाहते हैं, तो आप अपनी पुरानी साइट के लिए सुधार लागू कर सकते हैं :

find ./ -type f -exec sed -i -e 's/from\ django\.conf\.urls\.defaults\ import\ \*/from\ django\.conf\.urls\ import\ \*/g' {} \;

.. अपने <graphite_dir>/webapp/graphiteदिर

इससे मुझे मेरे ग्रेफाइट 0.9.12 और Django 1.7 (.5) में मदद मिली।

(मुझे भी करना था:

find ./ -type f -exec sed -i -e 's/mimetype\=/content_type\=/g' {} \;
find ./ -type f -exec sed -i -e 's/content_type\=mimetype/content_type\=content_type/g' {} \;

.. के बाद के रूप में मैं अपने कुछ सुविधाओं काम नहीं किया ग्रेफाइट शुरू करने में कामयाब रहे। अब वे मेरे लिए काम करते हैं लेकिन YMMV।)


1
धन्यवाद, यह अभी भी इस सॉफ्टवेयर के वर्तमान पुनरावृत्ति में मामला प्रतीत होता है! आपके फिक्सेस मेरे लिए ग्रेफाइट 0.9.12 और Django 1.6.1 में अच्छी तरह से काम करते हैं!
एंड्रयू व्हाइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.