AWS Beanstalk部署失败求助:mysqlclient安装遇mysql_config未找到错误
解决AWS Elastic Beanstalk部署时mysqlclient安装失败(mysql_config not found)的问题
错误根源
部署失败的核心原因:mysqlclient是基于C扩展的Python包,安装时需要系统预先提供MySQL/MariaDB的开发依赖库,但Elastic Beanstalk默认的Python运行环境没有预装这些工具,所以出现了mysql_config: command not found的报错。
解决步骤
1. 添加系统依赖配置文件
在项目根目录创建.ebextensions文件夹,里面新建一个名为01_install_mysql_deps.config的文件,内容如下:
packages: yum: mariadb-devel: [] gcc: [] python3-devel: []
mariadb-devel:提供mysql_config工具(MariaDB与MySQL完全兼容,无需单独安装MySQL开发包)gcc和python3-devel:编译C扩展包必须的编译工具链
2. 优化requirements.txt(可选但推荐)
你的依赖列表存在冗余:
mysql==0.0.3是废弃多年的老旧包,完全不需要保留flask_mysqldb本身依赖mysqlclient,保留mysqlclient即可
优化后的requirements.txt:
aiohttp==3.8.3 Django==4.1.4 Flask==2.0.2 Flask_Login==0.6.0 flask_mysqldb==1.0.1 Flask_SQLAlchemy==2.5.1 Pillow==9.3.0 mysqlclient==2.1.1 Werkzeug==2.0.0 jinja2~=3.0.3
3. 重新部署
把.ebextensions文件夹和修改后的requirements.txt推送到GitHub,CodePipeline会自动触发新的部署,此时Elastic Beanstalk会先安装系统依赖,再正常安装Python包。
内容的提问来源于stack exchange,提问作者ELEVEN
相关产品推荐
相关产品推荐

