Django import error - no module named django.conf.urls.defaults

PythonDjangoGraphiteDjango 1.6

Python Problem Overview


I am trying to run statsd/graphite which uses django 1.6.

While accessing graphite URL, I get django module error

> File "/opt/graphite/webapp/graphite/urls.py", line 15, in > from django.conf.urls.defaults import * > ImportError: No module named defaults

However, I do not find defaults django package inside /Library/Python/2.7/site-packages/django/conf/urls/

Please help fixing this issue.

Python Solutions


Solution 1 - Python

django.conf.urls.defaults has been removed in Django 1.6. If the problem was in your own code, you would fix it by changing the import to

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

However, in your case the problem is in a third party app, graphite. The issue has been fixed in graphite's master branch and version 0.9.14+.

In Django 1.8+ you can remove patterns from the import, and use a list of url()s instead.

from django.conf.urls import url, include

Solution 2 - Python

If for some reason you don't want to downgrade to Django 1.5.x or upgrade Graphite then you can apply the fix to your older Graphite with:

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

..in your <graphite_dir>/webapp/graphite dir.

This helped me with my Graphite 0.9.12 and Django 1.7(.5).

(I also had to do:

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

..later on as after I managed to start Graphite some of its features didn't work. Now they work for me but YMMV.)

Solution 3 - Python

go to the file location where you have installed python. open cmd on that path and then install django with command >> pip install django

Then cross check on python shell with import django(which should do nothing) or simply use the command >> python -m django --version

it will simply give you version enter image description here

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionGJainView Question on Stackoverflow
Solution 1 - PythonAlasdairView Answer on Stackoverflow
Solution 2 - PythonGreg DubickiView Answer on Stackoverflow
Solution 3 - Pythonkate.5View Answer on Stackoverflow