WSL2 Ubuntu18.04部署mysqlclient时mysql_config缺失,求解决方案
解决mysqlclient==2.0.1安装时"mysql_config not found"的问题
我之前也碰到过一模一样的问题,其实根源很清晰:mysqlclient是基于C扩展的Python库,安装过程需要调用mysql_config工具来获取编译参数,但你的Docker镜像里默认没有安装MySQL/MariaDB的开发依赖包,所以才会触发这个报错。
针对WSL2里的Ubuntu 18.04 Docker环境,给你两个直接有效的解决步骤:
1. 修改Dockerfile,提前安装系统依赖
如果你的项目是基于Ubuntu 18.04(或者官方Python的bionic镜像,因为它底层就是Ubuntu 18.04)构建的,一定要在pip install之前,先安装必要的系统工具:
# 更新apt源并安装mysqlclient所需的依赖 RUN apt-get update && apt-get install -y \ default-libmysqlclient-dev \ build-essential \ && rm -rf /var/lib/apt/lists/*
default-libmysqlclient-dev:这个包会直接提供mysql_config工具,是解决报错的核心依赖;build-essential:包含gcc等编译工具,用来编译mysqlclient的C扩展部分;- 最后清理apt缓存是为了减小镜像体积。
2. 清理缓存重新构建镜像
如果之前已经尝试构建过镜像,Docker可能会缓存旧的构建层,导致新的依赖没被安装。可以用下面的命令强制重新构建:
docker-compose build --no-cache
之后再运行docker-compose up,应该就能顺利安装mysqlclient了。
内容的提问来源于stack exchange,提问作者Rollson
相关产品推荐
相关产品推荐

