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

如何在GitHub Actions中导入自定义Python模块?

解决GitHub Actions中Python模块导入失败问题

在GitHub Actions Windows环境中运行Python脚本时,出现ModuleNotFoundError: No module named 'code.data'错误,本地运行正常,已尝试添加__init__.py和sys.path.append("../")但无效。项目结构如下:

repo/
|-- code/
|   |-- data/
|   |   |-- constants.py
|-- test/
|   |-- test_1.py

方案1:在脚本中动态添加正确的项目根目录到Python路径

修改test/test_1.py,替换原来的路径添加代码,确保无论脚本运行环境如何,都能精准定位项目根目录:

import sys
import os

# 获取当前脚本所在目录的上层目录(即repo根目录)
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

from code.data.constants import DATETIME_FORMAT

方案2:在GitHub Actions中设置PYTHONPATH环境变量

在运行Python脚本的步骤前,新增环境变量配置步骤,将仓库根目录直接加入Python的模块搜索路径:

- name: Set Python path
  run: |
    echo "PYTHONPATH=${{ github.workspace }}" | Out-File -FilePath $env:GITHUB_ENV -Append

- name: Run python code
  run: |
    python test/test_1.py

${{ github.workspace }}是GitHub Actions内置变量,指向仓库的根目录,设置后Python会自动从该目录查找模块。

方案3:切换工作目录并以模块方式运行脚本

如果使用相对导入,需先切换到test目录,再以模块形式运行脚本:

- name: Run python code
  run: |
    cd test
    python -m test_1

同时修改test_1.py中的导入语句为相对路径格式:

from ..code.data.constants import DATETIME_FORMAT

注意:此方式必须使用-m参数以模块形式运行,直接执行脚本会触发相对导入错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:40:19