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

GitHub Actions中使用pdoc生成文档遇ModuleNotFoundError求助

解决GitHub Actions中找不到mainFile模块的问题

问题根源

GitHub Actions的Python运行环境默认不会把当前工作目录加入sys.path,而本地环境通常已经包含该路径,这就导致本地能正常运行但CI环境报错。

修复方案

1. 临时设置PYTHONPATH(快速解决)

修改你的GitHub Actions脚本,在执行pdoc或测试命令前,把当前目录添加到环境变量:

- name: 生成文档
  run: |
    export PYTHONPATH="$PYTHONPATH:."
    pdoc mainFile.py -o docs

2. 使用模块方式运行命令

运行测试时,用python -m pytest代替直接调用pytest,这会自动将当前目录加入Python的搜索路径:

- name: 运行单元测试
  run: python -m pytest test_mainFile.py -v

如果是测试文件本身的问题,也可以在test_mainFile.py开头添加以下代码手动添加路径:

import sys
from pathlib import Path
sys.path.append(str(Path(__file__).parent))

import mainFile

3. 调整为标准包结构(长期维护推荐)

把项目改成可安装的包结构,这样无论本地还是CI环境都能正常导入:

你的项目/
├── src/
│   └── mainFile.py
├── tests/
│   └── test_mainFile.py
└── pyproject.toml

在pyproject.toml中添加基础配置:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "your-project-name"
version = "0.1.0"
packages = ["src"]

然后在GitHub Actions中先安装包再执行命令:

- name: 安装项目
  run: pip install -e .

- name: 生成文档
  run: pdoc src.mainFile -o docs

- name: 运行测试
  run: python -m pytest tests/test_mainFile.py -v

验证

修改后重新触发GitHub Actions,确认ModuleNotFoundError是否消失,同时保证本地运行依然正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:20:39