如何在AWS Chalice部署中引入python mysql.connector并解决导入错误?
解决Chalice部署Lambda时
mysql.connector导入失败的问题 我之前部署Chalice应用到Lambda时也踩过这个坑,给你几个亲测有效的解决步骤:
1. 先修正requirements.txt里的包名
你现在写的mysql_connector==2.1.6是错误的!对应mysql.connector模块的正确PyPI包名是mysql-connector-python,而且2.1.6版本太老旧了,大概率和Lambda的Python运行时不兼容。把requirements.txt改成:
mysql-connector-python==8.0.33
(这个版本是目前的稳定版,适配大部分Lambda Python运行时)
2. 强制让Chalice正确打包依赖
有时候本地安装的依赖没有被Chalice正确打包到部署包,你可以手动指定安装目录到Chalice的vendor文件夹:
- 先删除本地已有的依赖文件夹(比如
.chalice/vendor) - 执行命令重新安装依赖:
pip install -r requirements.txt -t .chalice/vendor - 再重新部署:
这样Chalice会把vendor文件夹里的所有依赖一起打包上传到Lambda,确保chalice deploymysql.connector模块被包含进去。
3. 确认Python版本匹配
Lambda的运行时Python版本必须和你本地开发以及Chalice配置的版本一致。比如你本地用Python 3.9,Lambda也要设置成Python 3.9。你可以在.chalice/config.json里查看或修改:
{ "stages": { "dev": { "lambda_runtime": "python3.9" } } }
版本不匹配的话,依赖可能会因为字节码不兼容无法导入。
4. 排查依赖冲突
如果上面的步骤都没用,你可以先创建一个极简测试项目:只保留app.py(里面只写导入mysql.connector的代码)和正确的requirements.txt,部署后测试。如果没问题,再逐步添加原来的其他依赖,找到可能导致冲突的包。
内容的提问来源于stack exchange,提问作者S.Schedel
相关产品推荐
相关产品推荐

