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

如何让AWS Lambda中的Python代码正确导入相对路径模块?

解决AWS Lambda中Python模块导入问题

核心原因

AWS Lambda的执行上下文默认将部署包的根目录加入Python的sys.path,而你的lambda_handler位于server子目录下,导致模块导入的路径逻辑和本地环境不一致。

可行解决方案

方案1:添加当前目录到sys.path

在aws_lambda_function.py的最开头添加以下代码,把当前文件所在的server目录加入Python的路径搜索列表:

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

之后直接使用导入语句即可:

from server_code import process_request

方案2:规范包结构并使用相对导入

  1. 在server目录下创建空的__init__.py文件,将server标记为Python包
  2. 确保Lambda的处理程序配置设置为server.aws_lambda_function.lambda_handler(格式:包名.模块名.函数名)
  3. 在aws_lambda_function.py中使用相对导入:
from .server_code import process_request

方案3:使用基于根目录的绝对导入

如果你的部署包根目录下包含server文件夹,直接使用绝对导入:

from server.server_code import process_request

⚠️ 注意:必须确保部署包完整包含server目录及其所有文件,打包时不要遗漏子目录。

打包验证

部署前检查你的ZIP包结构,解压后应该是这样的:

your-deployment-package/
├─ server/
│  ├─ __init__.py
│  ├─ aws_lambda_function.py
│  └─ server_code.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:55:19