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

Github Action运行pytest遇ModuleNotFoundError:找不到src模块

解决GitHub Action中Poetry项目的ModuleNotFoundError: No module named 'src'问题

问题分析

本地环境执行poetry run pytest测试正常,但GitHub Action中抛出src模块找不到的错误,核心原因是Poetry未将src目录作为可导入包安装到虚拟环境中,或工作流内环境变量配置未正确生效。

解决方案

1. 完善pyproject.toml的packages配置

确保pyproject.toml中明确声明要包含的src目录,告诉Poetry将其作为项目核心包处理:

[tool.poetry]
# 保留原有name/version/authors等配置
packages = [{ include = "src" }]

2. 确保工作流安装完整依赖

修改GitHub Action的依赖安装步骤,显式指定安装开发依赖(避免因环境差异导致依赖缺失):

- name: Install dependencies
  run: |
    python -m pip install poetry==1.6.1
    poetry install --with dev

3. 调整测试命令的环境变量

如果上述配置仍未解决问题,可在运行测试时通过Poetry传递PYTHONPATH,确保测试进程能定位到src目录:

- name: Run tests
  run: poetry run env PYTHONPATH="$PWD" pytest

4. 同步本地与远程配置

确认本地的pyproject.toml和poetry.lock已提交到GitHub,避免远程环境使用旧配置文件。

调试验证(可选)

若问题仍存在,可在工作流中添加调试步骤,检查虚拟环境的site-packages是否包含src:

- name: Debug site-packages
  run: poetry run ls -la $(poetry run python -c "import site; print(site.getsitepackages()[0])")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:23:14