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

部署AWS Chalice时出现No module named 'playhouse'错误的解决咨询

解决AWS Chalice部署后找不到playhouse模块的问题

核心原因

playhouse是peewee的内置子包,无法单独安装;部署到Lambda时,依赖未被正确打包到部署包中,导致运行时找不到模块。

步骤1:修正依赖安装操作

不要尝试单独安装playhouse,直接确保peewee已添加到项目依赖:

poetry add peewee

执行后,playhouse会作为peewee包的一部分被安装到虚拟环境中。

步骤2:确保Chalice部署时打包依赖

Chalice默认会收集项目依赖并打包到Lambda部署包,若自动打包失效,可按以下方式处理:

方式A:清理缓存后重新部署

  1. 删除Chalice的部署缓存目录:
    rm -rf .chalice/deployment
    
  2. 确保本地依赖安装完整:
    poetry install --no-root
    
  3. 重新部署应用:
    chalice deploy
    

方式B:手动指定依赖列表

在.chalice/config.json中明确添加peewee到依赖列表:

{
  "version": "2.0",
  "app_name": "your-app-name",
  "requirements": [
    "peewee>=3.17.0"
  ]
}

保存后重新执行chalice deploy,Chalice会根据该列表安装并打包依赖。

方式C:使用Lambda层管理依赖(适合多服务共享依赖)

  1. 创建依赖层目录并安装peewee:
    mkdir -p python
    pip install peewee -t python/
    
  2. 打包成zip文件:
    zip -r peewee-layer.zip python/
    
  3. 通过AWS控制台或CLI上传该zip作为Lambda层,记录层的ARN。
  4. 在.chalice/config.json中添加层配置:
    {
      "version": "2.0",
      "app_name": "your-app-name",
      "layers": [
        "arn:aws:lambda:你的区域:你的账号ID:layer:peewee-layer:1"
      ]
    }
    
  5. 重新部署应用。

额外排查点

  • 确认本地开发环境与Lambda运行时的Python版本一致(比如本地用3.11,Lambda也要配置为3.11),避免版本兼容问题。
  • 下载Lambda部署包解压检查,确认peewee和playhouse目录是否存在,若不存在则说明依赖打包未成功,需重新执行上述步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:00:41