Django 1.8与DRF 3.7出现ImportError: No module named urls问题求助
解决 ImportError: No module named urls 问题
嘿,这个导入错误我之前也碰到过,大概率是URL配置或者应用注册环节出了问题,我帮你一步步排查解决:
1. 先确认 core 应用已注册到 Django 配置
Django 如果没把 core 加入到 INSTALLED_APPS 里,就找不到 core.urls 这个模块。打开你的 settings.py,检查 INSTALLED_APPS 里是否包含这两个项:
INSTALLED_APPS = [ # 其他默认应用(比如django.contrib.admin之类的) 'core', # 必须加上你的core应用 'rest_framework' # DRF也得注册,不然ListAPIView用不了 ]
2. 修正URL配置里的多余斜杠
你的主 urls.py 已经匹配了 ^api/core/,但 core/urls.py 里的 r'^/users/' 多了一个开头的斜杠——这不仅会导致URL匹配失败,还可能间接引发模块导入的混淆。把 core/urls.py 改成这样:
from django.conf.urls import url from . import views # 这里建议直接导入views模块,避免命名混淆 urlpatterns = [ url(r'^users/', views.userlist), # 去掉开头的/ ]
3. 检查 core 应用的目录结构是否合法
要让Python识别 core 为可导入模块,core 目录下必须有 __init__.py 文件。你的项目结构应该是这样的:
你的项目根目录/ manage.py 项目配置目录/ settings.py urls.py core/ __init__.py # 空文件就行,必须存在! urls.py views.py models.py # 其他应用相关文件
如果没有 __init__.py,赶紧创建一个空文件,这是Python识别模块的必要条件。
4. 确认View的导入路径正确
看你 core/urls.py 里导入的是 core_view,但你的view文件叫 views.py,这明显不匹配啊!要么把view文件重命名为 core_view.py,要么修改 core/urls.py 的导入语句:
# 推荐写法,直接从views导入需要的视图 from django.conf.urls import url from .views import UserList urlpatterns = [ url(r'^users/', UserList.as_view()), ]
做完这些修改后,重启Django开发服务器,再访问 http://localhost:8000/api/core/users 应该就能正常返回用户列表了。
内容的提问来源于stack exchange,提问作者108
相关产品推荐
相关产品推荐

