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

AWS Amplify构建失败:pipenv --venv命令执行出错

问题描述

使用AWS Amplify搭建的网站包含多个Python Lambda函数,此前构建成功,近期仅修改前端代码后再次构建时出现错误:

🛑 Received error [Error: Command failed with exit code 1: pipenv --venv
No virtualenv has been created for this project(PATH_TO_ONE_OF_THE_FUNCTIONS) yet!
Aborted!] running command [pipenv --venv]

注:每次重新部署构建时,报错的函数路径都不同,文中已替换为PATH_TO_ONE_OF_THE_FUNCTIONS

未修改后端代码,但不清楚pipenv --venv执行失败的原因。当前使用的amplify.yml配置如下:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci --force
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
backend:
  phases:
    build:
      commands:
        - update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9
        - /usr/local/bin/python3.9 -m pip install --upgrade pip
        - /usr/local/bin/pip3.9 install --user pipenv==2022.4.8
        - amplifyPush --simple

本地环境:Mac系统,Amplify CLI最新版(12.1.0),本地执行amplify push无任何错误。

解决方案

1. 清理Amplify构建缓存

Amplify的构建缓存可能残留旧的后端依赖状态,导致pipenv找不到虚拟环境。直接在Amplify控制台的构建页面,手动触发清理缓存并重新构建,强制重新生成所有后端依赖环境。

2. 修改amplify.yml后端构建命令

当前配置中安装pipenv后直接执行amplifyPush --simple,但Amplify构建环境需要显式为每个Lambda函数创建虚拟环境。更新后端构建命令如下:

backend:
  phases:
    build:
      commands:
        - update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.9
        - /usr/local/bin/python3.9 -m pip install --upgrade pip
        - /usr/local/bin/pip3.9 install --user pipenv==2022.4.8
        # 将pipenv加入系统PATH
        - export PATH=$PATH:~/.local/bin
        # 遍历所有Lambda函数目录,初始化pipenv环境
        - for func in amplify/backend/function/*; do if [ -f "$func/Pipfile" ]; then cd "$func" && pipenv install --deploy && cd -; fi; done
        - amplifyPush --simple

这段命令会遍历所有Lambda函数目录,找到存在Pipfile的目录,进入后执行pipenv install --deploy生成虚拟环境,确保pipenv --venv能找到对应环境。

3. 同步本地Pipfile与Pipfile.lock

本地执行amplify push无问题,但可能存在Pipfile和Pipfile.lock不一致的情况,导致Amplify构建环境无法正确生成虚拟环境。在本地每个Lambda函数目录下执行:

pipenv lock --keep-outdated
git add Pipfile.lock
git commit -m "Fix Pipfile.lock consistency"

之后重新推送代码到仓库,触发Amplify构建。

4. 确认Lambda运行时版本匹配

确保Lambda函数的运行时版本与构建环境指定的Python3.9一致,避免版本不兼容导致pipenv创建虚拟环境失败。可在Amplify控制台的后端函数设置中检查每个Lambda的运行时版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:52:28