You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已在settings注册应用仍出现ModuleNotFoundError问题求助

Django makemigrations 报 ModuleNotFoundError 排查方案(已注册应用)

以下是针对你遇到问题的核心排查方向和解决方法:

  • 模型引用与AUTH_USER_MODEL配置错误
    若在其他模块(比如blog应用)引用authentication的User模型,必须确保路径正确:from authentication.models import User,避免相对路径误用或拼写失误。
    另外,settings.py中重写用户模型的配置必须严格遵循应用名.模型类名格式,即:

    AUTH_USER_MODEL = 'authentication.User'
    

    遗漏应用名或写错模型类名都会直接导致模块找不到的错误。

  • 应用目录结构不规范
    确认authentication应用目录下存在空的__init__.py文件,Python需要这个文件识别该目录为可导入模块。
    同时,确保你是在manage.py所在的项目根目录执行makemigrations命令。可以通过运行python -c "import sys; print(sys.path)"检查项目根目录是否在Python的路径列表中,若不在,切换到根目录再执行命令。

  • 虚拟环境未正确激活
    执行命令前务必激活对应虚拟环境:

    • Windows系统:venv\Scripts\activate
    • Linux/macOS系统:source venv/bin/activate
      激活后用pip list确认Django版本为3.2.3,避免误用全局Python环境导致的依赖缺失。
  • 缓存文件干扰
    删除项目中所有__pycache__文件夹(包括每个应用目录下的),同时重启你的IDE,清除可能存在的缓存异常,之后再重新执行python manage.py makemigrations。

  • 应用注册路径错误
    检查settings.py的INSTALLED_APPS配置,确保应用是直接以应用名注册:

    INSTALLED_APPS = [
        'authentication',
        'blog',
        # 其他默认应用
    ]
    

    若你的应用放在子目录(如apps文件夹),需先在settings.py中添加子目录到Python路径:

    import sys
    sys.path.append(str(BASE_DIR / 'apps'))
    

    再用'authentication'注册,或者直接用'apps.authentication'作为注册名。

内容的提问来源于stack exchange,提问作者Mereva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:41:13