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

LiveServerTestCase运行失败:ImportError缺失my_portal.my_portal模块

排查LiveServerTestCase抛出ImportError(找不到'my_portal.my_portal'模块)的方法

我之前第一次用LiveServerTestCase搭配Selenium时,也碰到过这种摸不着头脑的导入错误,谷歌翻遍、官方文档啃透都没找到直接解决办法,太懂这种挫败感了。结合你的情况,给你整理几个针对性的排查方向:

  • 先核对项目结构与INSTALLED_APPS配置
    先确认你的项目是标准Django结构,比如:

    my_portal/
        manage.py
        my_portal/
            __init__.py
            settings.py
            urls.py
            wsgi.py
        # 其他应用文件夹
    

    然后打开settings.py检查INSTALLED_APPS,确保'my_portal'(你的主应用名称)已经正确添加,拼写、大小写完全一致——有时候手滑多打个下划线或者拼错字符,就会触发这种模块找不到的错误。

  • 手动验证模块的可导入性
    到项目根目录(就是有manage.py的那个文件夹)打开Python shell,直接执行import my_portal.my_portal,看看会不会报错。如果这里也报错,说明问题根本不在LiveServerTestCase上,是Python路径或者模块本身的问题。
    也可以在测试文件开头加一段代码,打印当前Python路径:

    import sys
    print(sys.path)
    

    看看项目根目录有没有在路径列表里,如果没有,可以临时在测试文件里补全路径:

    import sys
    import os
    sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
    

    不过这只是临时方案,最好还是通过IDE设置项目根目录或者系统环境变量来彻底解决。

  • 检查测试文件的位置与命名
    确保测试文件放在正确的位置:如果是应用内的测试,要放在my_portal/tests/文件夹下,而且文件名要符合Django的测试发现规则(比如以test_开头)。如果测试文件随便放在项目根目录或者其他非标准位置,很容易导致导入路径混乱。

  • 隔离Selenium远程配置的影响
    你提到已经实现了Selenium远程URL功能,不妨先把这部分代码注释掉,写一个最极简的LiveServerTestCase测试:

    from django.test import LiveServerTestCase
    
    class SimpleTest(LiveServerTestCase):
        def test_basic(self):
            self.assertEqual(1, 1)
    

    如果这个极简测试也报错,说明问题和Selenium无关,就是项目配置的锅;如果不报错,再逐步加回Selenium远程配置,排查哪一行代码引发了导入问题——比如有没有在自定义setUp方法时忘了调用父类的setUp(),或者配置远程驱动时不小心修改了sys.path?

  • 确认__init__.py文件存在
    检查my_portal/和my_portal/my_portal/这两个文件夹里,是不是都有__init__.py文件(空文件就行)。如果缺少这个文件,Python会把文件夹当成普通目录,而不是可导入的模块。

内容的提问来源于stack exchange,提问作者Fenn-CS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:18:45