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

Python-Airflow项目执行unittest时报ModuleNotFoundError问题排查

问题:执行Python unittest时出现ModuleNotFoundError错误

执行命令python -m unittest testing.unit_tests.alembic_unittest时,抛出ModuleNotFoundError: No module named 'testing'错误,完整错误栈如下:

ERROR: testing (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: testing
Traceback (most recent call last):
  File "/Users/myname/.pyenv/versions/3.10.0/lib/python3.10/unittest/loader.py", line 154, in loadTestsFromName
    module = __import__(module_name)
ModuleNotFoundError: No module named 'testing'

项目结构:

project directory
├── testing
    ├── __init__.py
    └── unit_tests
        ├── __init__.py
        └── alembic_unittest.py

已尝试在project_directory/testing/__init__.py中添加以下代码,但仍报错:

import sys
sys.path.insert(0, 'testing/')

当前PYTHONPATH配置为PYTHONPATH=/Users/myname/.pyenv/versions/3.10.0/lib/python3.10:,使用PyCharm IDE。

错误原因及解决办法

错误原因

  1. 工作目录错误:执行测试命令时,终端当前目录不是项目根目录(project directory),导致Python无法定位到testing模块。
  2. 无效的sys.path配置:在testing/__init__.py中添加的路径完全无效——Python在找不到testing模块时,根本不会加载这个文件,也就不会执行里面的代码;而且'testing/'是相对路径,即使执行了也无法帮Python找到正确的模块位置。
  3. PYTHONPATH缺失项目根目录:当前PYTHONPATH仅包含Python标准库路径,没有包含项目根目录,Python无法识别项目下的自定义模块。

解决办法

  • 方法一:切换到项目根目录执行命令
    打开终端,切换到project directory的绝对路径下,再执行测试命令:

    cd /path/to/project directory
    python -m unittest testing.unit_tests.alembic_unittest
    
  • 方法二:配置PYTHONPATH添加项目根目录

    • 临时配置(仅当前终端会话有效):
      export PYTHONPATH="/path/to/project directory:$PYTHONPATH"
      python -m unittest testing.unit_tests.alembic_unittest
      
    • PyCharm中永久配置:
      1. 打开Run/Debug Configurations,找到对应的unittest测试配置
      2. 在Environment variables中添加PYTHONPATH,值为项目根目录的绝对路径
      3. 保存配置后重新运行测试
  • 方法三:移除无效代码
    删除testing/__init__.py中添加的sys.path相关代码,这段代码对解决问题没有任何帮助。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:35:18