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

Posted

技术标签:

【中文标题】Django 导入错误 - 没有名为 django.conf.urls.defaults 的模块【英文标题】:Django import error - no module named django.conf.urls.defaults 【发布时间】:2013-11-26 13:59:21 【问题描述】:

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

访问石墨 URL 时,出现 django 模块错误

文件“/opt/graphite/webapp/graphite/urls.py”,第 15 行,在 从 django.conf.urls.defaults 导入 * ImportError:没有名为默认值的模块

但是,我在 /Library/Python/2.7/site-packages/django/conf/urls/ 中找不到 defaults django 包

请帮助解决此问题。

【问题讨论】:

你使用的是什么 django 版本? python -c "import django; print(django.get_version())" 1.6 【参考方案1】:

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

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

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

在 Django 1.8+ 中,您可以从导入中删除 patterns,并改用 url()s 列表。

from django.conf.urls import url, include

【讨论】:

还要检查您是否在 settings.py 中设置了 ROOT_URLCONF!这个变量也必须进行调整。在我的情况下,它是 ROOT_URLCONF = 'urls' 并且必须更改为 ROOT_URLCONF = 'app.urls' 模式已被删除。您可以直接使用 python 列表添加 url 而不是使用模式。 @Alasdair 正在使用 django 1.6 中的代码,并在此处找到了默认替换。只是在添加答案。以便其他人可以在一个地方找到所有帮助。【参考方案2】:

如果由于某种原因您不想降级到 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。)

【讨论】:

谢谢,在这个软件的当前迭代中似乎仍然是这种情况!您的修复在 Graphite 0.9.12 和 Django 1.6.1 中对我很有效!【参考方案3】:

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

然后用 import django 对 python shell 进行交叉检查(应该什么都不做) 或者干脆使用命令 >> python -m django --version

它只会给你版本 enter image description here

enter image description here

【讨论】:

以上是关于Django 导入错误 - 没有名为 django.conf.urls.defaults 的模块的主要内容,如果未能解决你的问题,请参考以下文章

django 导入错误 - 没有名为 core.management 的模块

导入错误:没有名为 django 的模块 - 用于特定项目

升级到 Django 1.7。导入错误:没有名为仪表板的模块

视图中的 Django 导入错误 - 没有名为“x”的模块

Django + uwsgi + nginx。导入错误:没有名为py的模块

Django 1.8 和 Rest Framework 3.7 的“导入错误:没有名为 urls 的模块”