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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (149)

我正在尝试运行使用django 1.6的statsd / graphite。

在访问graphite URL时,我得到了django模块错误

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

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

请帮助解决这个问题。

提问于
用户回答回答于

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

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

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

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

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目录中。

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

扫码关注云+社区

领取腾讯云代金券