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

Lambda部署MySQL Connector报错:无法导入'myapp',找不到'mysql'模块

解决AWS Lambda无法导入mysql模块的问题

嘿,这个坑我踩过好多次!Lambda的默认运行环境根本没预装mysql-connector-python,这就是为啥你本地Mac和EC2 Ubuntu能正常跑,一部署到Lambda就报No module named 'mysql'。给你几个实用的解决方案:

方案1:把依赖和代码一起打包(适合单函数小项目)

这种方法简单直接,把需要的库和你的代码打包成同一个zip上传:

  • 本地创建一个空文件夹,比如lambda-deploy
  • 进入文件夹,用pip把依赖安装到当前目录:
    pip install mysql-connector-python -t ./
    
  • 把你的myapp.py文件复制到这个文件夹里
  • 选中文件夹里的所有文件(注意:不要把文件夹本身打包,要直接打包里面的内容),压缩成zip包
  • 登录AWS控制台,把这个zip包上传到你的Lambda函数,替换原来的代码包

方案2:用Lambda Layers共享依赖(适合多函数复用)

如果有多个Lambda函数都需要用到mysql连接器,用层来管理更高效:

  • 创建一个空文件夹,比如mysql-layer,在里面新建一个python子文件夹(Lambda层要求依赖必须放在这个目录下)
  • 进入python文件夹,安装依赖:
    pip install mysql-connector-python -t ./
    
  • 回到mysql-layer文件夹,把python文件夹压缩成zip包(注意:zip的根目录是python,不是外层文件夹)
  • 打开AWS Lambda控制台,进入「Layers」页面,点击「Create layer」,上传这个zip包,选择和你的Lambda函数匹配的Python运行时(比如Python 3.9)
  • 回到你的Lambda函数,在「Layers」选项卡中点击「Add a layer」,选择你刚创建的层,保存后测试

注意事项:架构兼容问题

如果你用的是M1/M2系列的Mac(arm64架构),直接本地打包的依赖可能和Lambda的x86_64架构不兼容,导致还是报错。这时候可以用Docker模拟Lambda的运行环境来打包:

# 确保本地安装了Docker
docker run -v "$PWD":/var/task public.ecr.aws/sam/build-python3.9:latest pip install mysql-connector-python -t ./

这个命令会在x86_64的容器环境里安装依赖,打包出来的zip就能在Lambda上正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:09:09