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

GitHub Actions运行Python单元测试报Missing Module:无法找到src模块

问题根因
  • 本地VS Code默认会将项目根目录加入Python的模块搜索路径sys.path,所以from src import xxx的写法可以正常运行
  • GitHub Action运行测试时,你将工作目录指定为了test目录,且测试代码里的路径追加逻辑和导入写法不匹配:你把<项目根>/src目录加入了搜索路径,此时Python可以直接找到src下的模块,但无法找到名为src的模块,因此触发ModuleNotFoundError
可行解决方案

方案1:修改测试代码的路径与导入逻辑(优先推荐,一劳永逸)

两种修改方式二选一即可:

  1. 调整导入写法
    保留原有路径追加逻辑,修改导入语句即可:
import sys, os.path  
import unittest
src_path = (os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) + '/src/')
sys.path.append(src_path)
# 直接导入src下的模块,不需要加src前缀
import runner, utils, database, objects
  1. 调整追加的搜索路径
    修改路径拼接逻辑,改为追加项目根目录到搜索路径,保留原有导入写法:
import sys, os.path  
import unittest
# 追加项目根目录到sys.path,而非src目录本身
src_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
sys.path.append(src_path)
from src import runner, utils, database, objects

方案2:修改GitHub Action配置(不需要动业务代码)

在运行测试的步骤中,将项目根目录加入PYTHONPATH环境变量即可,修改你的yml文件中Run Tests步骤:

- name: Run Tests
  run: python -m unittest test_hypedsearch
  working-directory: test
  env:
    PYTHONPATH: ${{ github.workspace }}

说明:${{ github.workspace }}是GitHub Action的内置变量,指向你项目的根目录,加入PYTHONPATH后Python就能找到根目录下的src模块

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 17:00:00