You need to enable JavaScript to run this app. GitHub Actions部署Python Lambda时Serverless的pythonBin正确配置
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions部署Python Lambda时Serverless的pythonBin正确配置

问题核心根因

你之前所有配置尝试都失效的本质原因是:serverless/github-action@master 步骤运行在独立的Docker容器内,和之前通过actions/setup-python配置的Python环境完全隔离。
你在依赖安装步骤里查到的/opt/hostedtoolcache/Python/3.6.13/x64/bin/python3.6是GitHub runner主机的文件系统路径,容器内部无法直接访问这个路径,哪怕你在serverless.yml里写死这个地址,容器里也找不到对应的二进制文件,自然会抛出“python3.6 not found”的报错。

修正配置步骤

1. 调整serverless.yml的配置层级

你之前把pythonRequirements的配置嵌到了wsgi节点下方,属于配置层级错误。serverless-python-requirements插件的pythonBin参数归属在custom.pythonRequirements层级下,需要和wsgi节点平级。
修正后的核心配置参考:

plugins:
  - serverless-wsgi
  - serverless-python-requirements

custom:
  wsgi:
    app: app.app
    packRequirements: false
  # 与wsgi平级,不要嵌在wsgi内部
  pythonRequirements:
    pythonBin: python3
    dockerizePip: non-linux

注意保留wsgi.packRequirements: false的配置,避免wsgi插件和python-requirements插件重复打包依赖,产生冲突。

2. 适配GitHub Actions的执行环境

两种可落地的部署方案,任选其一即可:

方案一:直接在runner主机执行Serverless(推荐)

移除serverless/github-action这个独立容器步骤,在已经配置好Python3.6的runner环境中直接全局安装Serverless CLI执行部署:

# 替换原来的Serverless action步骤
- name: 安装Serverless CLI
  run: npm install -g serverless

- name: 执行Lambda部署
  run: serverless deploy

这种方式下整个部署流程和之前的Python环境处于同一个文件系统,不存在路径隔离问题,之前setup-python配置的Python路径可以被Serverless直接识别。

方案二:保留Serverless的Docker Action,打通容器路径映射

如果需要继续使用serverless/github-action,需要把主机的Python路径注入容器的PATH环境变量,让容器可以访问到主机上的Python二进制:

- name: Serverless
  uses: serverless/github-action@master
  with:
    args: deploy
  env:
    # 把主机上已配置好的Python路径加入容器的全局PATH
    PATH: /opt/hostedtoolcache/Python/3.6.13/x64/bin:$PATH

这种方式下不需要在serverless.yml里写死复杂的Python绝对路径,直接用python3作为pythonBin的配置值即可正常识别。

3. 优化配置的稳定性

  • AWS Lambda目前已停止对python3.6运行时的支持,建议将provider.runtime调整为python3.9或更高的受支持版本,同步修改工作流中actions/setup-python的对应版本,避免部署后遇到运行时下线的问题。
  • 不要硬编码Python的小版本缓存路径(比如写死3.6.13的具体路径),GitHub托管的runner的工具缓存路径可能会随版本迭代发生变化,通过PATH映射的方式配置会更稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 09:06:01