Próbuję uruchomić statsd / graphite, który używa django 1.6.
Podczas uzyskiwania dostępu do grafitowego adresu URL otrzymuję błąd modułu django
Plik „/opt/graphite/webapp/graphite/urls.py”, wiersz 15, z pliku django.conf.urls.defaults import * ImportError: Brak modułu o nazwie defaults
Jednak nie znajduję w środku domyślnego pakietu django/Library/Python/2.7/site-packages/django/conf/urls/
Proszę o pomoc w rozwiązaniu tego problemu.
python
django
graphite
django-1.6
GJain
źródło
źródło
Odpowiedzi:
django.conf.urls.defaults
został usunięty w Django 1.6 . Jeśli problem wystąpił w Twoim własnym kodzie, możesz go naprawić, zmieniając import nafrom django.conf.urls import patterns, url, include
Jednak w twoim przypadku problem występuje w aplikacji innej firmy, graficie. Problem został rozwiązany w głównej gałęzi grafitu i wersji 0.9.14+.
W Django 1.8+ możesz usunąć
patterns
z importu iurl()
zamiast tego użyć listy s.from django.conf.urls import url, include
źródło
Jeśli z jakiegoś powodu nie chcesz przechodzić do Django 1.5.x lub aktualizować Graphite, możesz zastosować poprawkę do starszego Graphite za pomocą:
find ./ -type f -exec sed -i -e 's/from\ django\.conf\.urls\.defaults\ import\ \*/from\ django\.conf\.urls\ import\ \*/g' {} \;
..w Twoim
<graphite_dir>/webapp/graphite
reż.Pomogło mi to w moim Graphite 0.9.12 i Django 1.7 (.5).
(Musiałem też zrobić:
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' {} \;
.. później, gdy udało mi się uruchomić Graphite, niektóre jego funkcje nie działały. Teraz pracują dla mnie, ale YMMV.)
źródło