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

将Python函数导入Serverless,AWS Lambda模块导入报错求助

解决AWS Lambda导入模块错误:No module named 'monitoring'

问题描述

将Serverless项目部署到AWS后,测试Lambda函数时出现导入错误,报错信息如下:

{
  "errorMessage": "Unable to import module 'src/app_monitor': No module named 'monitoring'",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "bca3f67d-815f-452b-a2a6-c713ad2c6baa",
  "stackTrace": []
}

解决方案

1. 对齐目录结构与导入语句

先确认monitoring模块的位置,调整代码中的导入方式:

  • 若monitoring是src目录的子模块,在app_monitor.py中使用相对导入:
    from .monitoring import [目标模块/方法]
    
  • 若monitoring是项目根目录下的独立目录,需确保该目录被打包进Lambda部署包,同时代码中使用正确的绝对导入路径。

2. 配置Serverless打包规则

在serverless.yml中通过package字段指定要包含的文件/目录,确保monitoring模块被纳入部署包:

service: your-service-name

package:
  include:
    - src/**  # 包含src目录下所有内容
    - monitoring/**  # 包含monitoring模块目录
  # 可选:排除无关文件以减小包体积
  exclude:
    - node_modules/**
    - .git/**
    - tests/**

3. 用插件处理依赖打包

如果monitoring是第三方依赖或需要编译的本地模块,使用serverless-python-requirements插件自动处理打包流程:

  1. 安装插件:
npm install serverless-python-requirements --save-dev
  1. 在serverless.yml中配置插件:
plugins:
  - serverless-python-requirements

custom:
  pythonRequirements:
    dockerizePip: non-linux  # 针对非Linux环境编译依赖(如MacOS/Windows)

4. 临时调整Python运行路径

作为应急方案,可在app_monitor.py开头添加路径配置,让Python能找到monitoring模块:

import sys
sys.path.append('.')  # 或根据模块实际位置调整,比如sys.path.append('/opt/python')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:15:54