Django导入错误 – 没有名为django.conf.urls.defaults的模块

我试图运行使用django 1.6 statsd /石墨。

在访问石墨URL时,我得到Django模块错误

文件“/opt/graphite/webapp/graphite/urls.py”,第15行,来自django.conf.urls.defaults import * ImportError:没有名为defaults的模块

但是,我没有find默认的 django包里面/Library/Python/2.7/site-packages/django/conf/urls/

请帮助解决这个问题。

Django 1.6中已经删除了 django.conf.urls.defaults 。 如果问题出在您自己的代码中,您可以通过更改导入来修复它

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

但是,在你的情况下,问题是在第三方应用程序,石墨。 这个问题已经在石墨的主分支和0.9.14+版本中得到修复。

在Django 1.8+中,您可以从导入中删除patterns ,并使用url()的列表来代替。

 from django.conf.urls import url, include 

如果出于某种原因,您不想降级到Django 1.5.x或升级Graphite,那么您可以使用以下方法将修复应用于较旧的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目录中。

这帮助了我的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的一些function没有工作。 现在他们为我工作,但YMMV。)