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.defaults
has 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 1.7。导入错误:没有名为仪表板的模块