GitHub Actions Cron任务中Python 'app'模块找不到的解决方案咨询
解决Python模块找不到的问题
问题根源
直接运行app/services/auto_predict_service.py时,Python的模块搜索路径(sys.path)未包含项目根目录,导致无法识别app作为合法模块。
具体解决办法
方法1:修改GitHub Actions的运行命令(无需改代码)
在Run the cron job步骤中,先将项目根目录添加到PYTHONPATH,再执行脚本:
- name: Run the cron job run: | cd $GITHUB_WORKSPACE export PYTHONPATH=$PYTHONPATH:. python app/services/auto_predict_service.py
或者改用模块方式运行脚本(更规范):
- name: Run the cron job run: | cd $GITHUB_WORKSPACE python -m app.services.auto_predict_service
方法2:修改脚本代码,手动添加路径
在auto_predict_service.py的最顶部添加以下代码,强制将项目根目录加入Python搜索路径:
import sys import os # 获取脚本所在目录的上级目录(即项目根目录) sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
方法3:修复虚拟环境依赖安装问题(潜在优化)
当前依赖安装步骤中使用了sudo,会导致依赖被安装到系统Python而非激活的虚拟环境,建议去掉sudo:
- name: Install dependencies run: | sudo apt-get update sudo apt-get install --no-install-recommends -y build-essential python3.11-venv python3.11 -m venv env source env/bin/activate pip install exceptiongroup pip install poetry cd $GITHUB_WORKSPACE poetry config virtualenvs.create false && poetry install --no-dev --no-interaction --no-ansi
内容的提问来源于stack exchange,提问作者Fery1320
相关产品推荐
相关产品推荐

