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

运行nosetests测试时特定目录结构下的模块导入错误问题

你遇到的错误由两处不规范的导入配置和运行路径问题共同导致:

1. 同目录模块导入写法错误

module_A.py 中使用的 from module_B import function_b 属于绝对导入语法,Python 会直接从系统模块搜索路径 sys.path 下寻找名为 module_B 的顶层模块,而你项目里的 module_B 是 modules 包下的子模块,不属于顶层模块,自然无法被识别。

修复方案:将 module_A.py 中的导入语句修改为同包相对导入:

from .module_B import function_b
2. 测试命令执行路径错误

你在 project_name/data/test 目录下运行 nosetests,此时 Python 的默认模块搜索路径中没有 project_name/data 目录,测试文件里的 from modules.module_A import function_a 也无法找到 modules 包,即便修复了上面的导入问题依然会报错。

两种修复方案二选一即可:

  • 切换到 project_name/data 目录下执行测试命令:nosetests test/,此时当前工作目录会被自动加入 sys.path,可以正常识别 modules 包
  • 运行测试前临时将项目对应目录加入环境变量,Linux/macOS 执行命令:export PYTHONPATH=/你的实际路径/project_name/data:$PYTHONPATH,Windows CMD 执行命令:set PYTHONPATH=C:\你的实际路径\project_name\data;%PYTHONPATH%,之后再运行测试命令即可。

另外补充:test/__init__.py 中不需要主动导入 test_module_A,nosetests 会自动扫描目录下的测试文件,冗余导入可能会引发额外的导入错误,可直接删除该导入语句。

内容的提问来源于stack exchange,提问作者sergi Justiniano Claramunt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 16:54:03