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

时间:2013-11-13 19:32:51

标签: python django graphite django-1.6

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

访问石墨网址时,我收到django模块错误

  

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

但是,我在/Library/Python/2.7/site-packages/django/conf/urls/

中找不到默认 django包

请帮助解决此问题。

3 个答案:

答案 0 :(得分:189)

django.conf.urls.defaults has been removed in Django 1.6。如果问题出在您自己的代码中,您可以通过将导入更改为

来解决问题
from django.conf.urls import patterns, url, include

但是,在您的情况下,问题出现在第三方应用程序石墨中。石墨主分支中的问题has been fixed和版本0.9.14 +。

在Django 1.8+中,您可以从导入中删除patterns,然后使用url()列表。

from django.conf.urls import url, include

答案 1 :(得分:3)

如果由于某种原因您不想降级到Django 1.5.x或升级Graphite,那么您可以将the fix应用于旧的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后,它的一些功能无法正常工作。现在他们为我工作,但YMMV。)

答案 2 :(得分:0)

转到安装python的文件位置。 在该路径上打开 cmd,然后使用命令安装 django >> pip install django

然后用import django交叉检查python shell(应该什么都不做) 或者简单地使用命令 >> python -m django --version

它只会给你版本 enter image description here

enter image description here