Ошибка импорта Django - нет модуля с именем django.conf.urls.defaults
Я пытаюсь запустить statsd/graphite, который использует django 1.6.
При доступе к графическому URL-адресу я получаю ошибку модуля django
Файл "/opt/graphite/webapp/graphite/urls.py", строка 15, в from django.conf.urls.defaults import * ImportError: ни один модуль с настройками по умолчанию
Однако я не нашел defaults пакет django внутри /Library/Python/2.7/site-packages/django/conf/urls/
Пожалуйста, помогите устранить эту проблему.
Ответы
Ответ 1
django.conf.urls.defaults
был удален в Django 1.6. Если проблема была в вашем собственном коде, вы исправите ее, изменив импорт на
from django.conf.urls import patterns, url, include
Однако в вашем случае проблема заключается в стороннем приложении графити. Проблема была исправлена в ветке графита и версии 0.9.14 +.
В Django 1.8+ вы можете удалить patterns
из импорта и вместо этого использовать список url()
.
from django.conf.urls import url, include
Ответ 2
Если по какой-то причине вы не хотите переходить на Django 1.5.x или обновлять Graphite, вы можете применить исправление к своему старшему Графит с:
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' {} \;
.. позже, после того как мне удалось запустить Graphite, некоторые его функции не сработали. Теперь они работают для меня, но YMMV.)