Django içe aktarma hatası - django.conf.urls.defaults adlı modül yok


93

Django 1.6 kullanan statsd / graphite çalıştırmaya çalışıyorum.

Grafit URL'ye erişirken django modülü hatası alıyorum

Django.conf.urls.defaults dosyasından "/opt/graphite/webapp/graphite/urls.py" dosyası, satır 15, içe aktar * ImportError: Varsayılan olarak adlandırılan modül yok

Ancak, django paketinin içinde varsayılanları bulamıyorum/Library/Python/2.7/site-packages/django/conf/urls/

Lütfen bu sorunu çözmeye yardımcı olun.


4
Hangi django sürümünü kullanıyorsunuz?
yuvi

1
python -c "import django; print (django.get_version ())" 1.6
GJain

Yanıtlar:


193

django.conf.urls.defaults Django 1.6'da kaldırılmıştır . Sorun kendi kodunuzdaysa, içe aktarmayı şu şekilde değiştirerek düzeltebilirsiniz:

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

Ancak, sizin durumunuzda sorun üçüncü taraf bir uygulamada, grafitte. Sorun giderildi grafitin usta şube ve sürüm 0.9.14+ içinde.

Django 1.8+ patternsile içe aktarmadan kaldırabilir ve url()bunun yerine bir e-posta listesi kullanabilirsiniz .

from django.conf.urls import url, include

Ayrıca, settings.py içinde ROOT_URLCONF ayarlamış olup olmadığınızı da kontrol edin! Bu değişkenin de uyarlanması gerekir. Benim durumumda bu ROOT_URLCONF = 'urls' idi ve ROOT_URLCONF = 'app.urls' olarak değiştirilmesi gerekiyordu
lszrh

desenler kaldırıldı. Kalıpları kullanmak yerine url eklemek için doğrudan bir python listesi kullanabilirsiniz.
Akshay Hazari

@Alasdair django 1.6'dan bir kodla çalışıyordu ve burada varsayılan yedekleri buldu. Sadece cevaba ekliyordu. Böylece bir başkası tüm yardımı tek bir yerde bulabilirdi.
Akshay Hazari

3

Herhangi bir nedenle Django 1.5.x'e düşürmek veya Graphite'i yükseltmek istemiyorsanız , düzeltmeyi eski Graphite'inize şu şekilde uygulayabilirsiniz :

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

.. senin <graphite_dir>/webapp/graphitedir.

Bu bana Graphite 0.9.12 ve Django 1.7 (.5) ile yardımcı oldu.

(Ayrıca yapmak zorundaydım:

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' {} \;

.. daha sonra Graphite'i başlatmayı başardıktan sonra bazı özellikleri çalışmadı. Şimdi benim için çalışıyorlar ama YMMV.)


1
Teşekkürler, bu yazılımın mevcut yinelemesinde durum hala böyle görünüyor! Düzeltmeleriniz Graphite 0.9.12 ve Django 1.6.1'de benim için iyi çalışıyor!
Andrew White
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.