Django执行python manage.py test出现polls测试模块导入错误如何解决
Django测试导入错误原因及修复方案
核心报错诱因
你遇到的ModuleNotFoundError: No module named 'mysite.mysite'报错核心为测试模块导入时路径层级重复、测试文件命名不规范,具体原因如下:
- 执行测试命令的目录错误:
manage.py默认存放在项目根目录(第一层mysite目录),Django会自动以manage.py所在目录为根路径拼接测试模块路径,你切换到mysite/mysite子目录执行命令时,根路径变为第二层mysite,拼接后就会出现mysite.mysite.mysite.polls的重复层级,直接触发模块找不到错误。 - 测试文件命名错误:Django默认自动识别的测试文件必须命名为
tests.py,你提到的polls/text.py为拼写错误,既不会被测试框架自动加载,也会导致导入逻辑异常。 - 应用注册配置错误:若
settings.py的INSTALLED_APPS中注册polls时添加了多余前缀(比如写为mysite.polls),和polls实际存放路径不匹配,也会触发导入失败。
修复步骤
- 回到存放
manage.py的项目根目录执行测试命令,不要进入子目录执行manage.py相关指令。 - 将
polls目录下的text.py重命名为tests.py,确保文件内的导入语句和项目实际结构匹配。 - 检查
mysite/settings.py的INSTALLED_APPS列表,若polls和manage.py在同一级目录,直接写'polls'即可,不要添加多余的路径前缀。 - 修复完成后重新执行
python manage.py test polls即可正常运行测试。
内容的提问来源于stack exchange,提问作者Romeo
相关产品推荐
相关产品推荐

