Ошибка импорта 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.)