Django import error – no module named django.conf.urls.defaults
Question:
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.
Answers:
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
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.)
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
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.
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
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.)
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