GitHub Actions执行Python脚本报错,本地运行正常求助
GitHub Actions 部署球图片分类项目的报错解决指南
1. TensorFlow 无法加载 CUDA/TensorRT 动态库
GitHub Actions 默认使用 CPU 环境的 runner,没有预装 GPU 驱动和 CUDA、TensorRT 依赖,TensorFlow 检测不到相关库就会抛出报错。
解决办法:
- 直接切换到 CPU 版本的 TensorFlow:把
requirements.txt里的tensorflow替换成tensorflow-cpu,或者在工作流的依赖安装步骤里执行pip install tensorflow-cpu - 若必须用 GPU,需要配置 GitHub-hosted 的付费 GPU runner,或者搭建自托管 GPU runner,但图片分类这类轻量任务用 CPU 版本完全足够。
2. batch_predict.py 无法从 flask_app.py 导入 classify_image 函数
大多是工作流执行时的工作目录不对,或者 Python 路径没包含项目根目录导致的。
解决办法:
- 在工作流的脚本执行步骤前,先切换到项目根目录:
- name: Run batch prediction run: | cd ${{ github.workspace }} python batch_predict.py - 或者在
batch_predict.py开头添加路径配置,确保能找到flask_app.py:import sys from pathlib import Path sys.path.append(str(Path(__file__).resolve().parent)) from flask_app import classify_image - 同时检查
flask_app.py里的classify_image函数有没有被if __name__ == "__main__"包裹,确保能被外部导入。
3. Keras 无法打开 ball_classifier.h5 文件
核心问题是模型文件没被正确拉取到 runner 环境中。
解决办法:
- 检查项目的
.gitignore文件,看看是不是加了*.h5规则导致模型文件没提交到仓库。如果是,删除该规则后重新提交:git add ball_classifier.h5 git commit -m "Add model file" - 如果模型文件超过 100MB,GitHub 普通仓库无法直接存储,需要用 Git LFS 管理:
git lfs track "*.h5" git add .gitattributes git add ball_classifier.h5 git commit -m "Add model with LFS" - 在工作流里加一步检查文件是否存在,确认模型文件在目录中再执行脚本:
- name: Check model file run: ls -la ${{ github.workspace }}
内容的提问来源于stack exchange,提问作者Mark Müller
相关产品推荐
相关产品推荐

