运行Django服务提示ModuleNotFoundError: No module named 'users.urls' 如何解决
报错成因
该错误本质是Django加载主路由配置时,无法找到你指定导入的users.urls模块,常见原因如下:
- 未创建
usersDjango应用,或创建后未在项目settings.py的INSTALLED_APPS列表中注册该应用 - 已创建
users应用,但应用根目录下未创建urls.py路由文件,或文件名存在拼写错误(如写成url.py、Urls.py) users应用存放路径错误,未放在项目根目录(和manage.py同级),也未额外配置Python模块搜索路径- 操作系统大小写敏感导致的报错,Linux、macOS环境下文件名大小写严格匹配,若应用名或路由文件名大小写不匹配就会触发报错
- 低版本Python环境下,
users文件夹下未添加__init__.py文件,无法被识别为可导入的模块包
排查解决步骤
- 确认
users应用已创建并注册
首先检查是否执行过python manage.py startapp users命令创建应用,再打开项目配置文件settings.py,确认INSTALLED_APPS列表中已添加users应用,示例配置:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增这行 'users', 'learning_logs', ] - 检查
users应用下的路由文件
进入users应用目录,确认存在urls.py文件,且文件名全小写无拼写错误,文件内需包含基础的路由声明,示例内容如下:from django.conf.urls import url from . import views # 必须声明app_name,配合namespace路由使用 app_name = 'users' urlpatterns = [ # 此处填写你的用户模块路由规则 ] - 核对路径与大小写
确认users文件夹直接存放在项目根目录,和manage.py处于同一层级。如果存放在其他子目录,需要在项目入口处把对应目录加入Python搜索路径。同时统一所有文件名、应用名为小写,避免跨系统大小写敏感问题。 - 适配Django版本的路由写法
你当前使用的带namespace的include写法适配Django 2.0及以上版本,若你使用的是Django 1.x版本,需要把主路由的对应配置调整为:url(r'^users/', include('users.urls', namespace='users')),
内容的提问来源于stack exchange,提问作者yashwanth_m.91
相关产品推荐
相关产品推荐

