test/test_main.py 在模块导入阶段直接导入 MineruEngine、初始化 Ray/GPU 推理引擎、扫描 PDF 并执行推理。pytest 收集测试文件时会导入该模块,因此在未安装 Ray 的环境中,python -m pytest --collect-only -q 会直接因 ModuleNotFoundError: No module named 'ray' 失败。
test/test_main.py
MineruEngine
python -m pytest --collect-only -q
ModuleNotFoundError: No module named 'ray'
即使完整安装运行依赖,测试收集也可能意外启动模型和 GPU 任务。
将示例执行逻辑放入 main(),并使用 if __name__ == "__main__": 保护直接执行入口;同时把 MineruEngine 的重型导入移到 main() 内。这样直接运行脚本的行为保持不变,pytest 收集或其他模块导入不会启动推理。
main()
if __name__ == "__main__":
问题描述
test/test_main.py在模块导入阶段直接导入MineruEngine、初始化 Ray/GPU 推理引擎、扫描 PDF 并执行推理。pytest 收集测试文件时会导入该模块,因此在未安装 Ray 的环境中,python -m pytest --collect-only -q会直接因ModuleNotFoundError: No module named 'ray'失败。即使完整安装运行依赖,测试收集也可能意外启动模型和 GPU 任务。
建议修改
将示例执行逻辑放入
main(),并使用if __name__ == "__main__":保护直接执行入口;同时把MineruEngine的重型导入移到main()内。这样直接运行脚本的行为保持不变,pytest 收集或其他模块导入不会启动推理。验收标准
test/test_main.py