pipenv安装mysqlclient后运行Django项目提示未安装如何解决
解决方案
- 第一步:确认虚拟环境匹配
执行runserver时未激活对应pipenv虚拟环境是最高发的原因,可直接执行pipenv run python manage.py runserver调用项目虚拟环境内的Python启动服务,避免手动激活环境的操作误差。也可先执行pipenv shell激活虚拟环境后再执行启动命令。 - 第二步:校验mysqlclient安装状态
执行pipenv run pip list查看虚拟环境已安装依赖列表,确认mysqlclient是否存在。如果不存在,重新执行pipenv install mysqlclient,注意仔细查看安装过程的输出信息,很多时候mysqlclient底层编译失败会被pipenv的安装成功提示掩盖。 - 第三步:安装系统底层依赖(针对安装失败场景)
mysqlclient编译需要依赖系统的MySQL开发组件,不同系统安装命令如下:- Debian/Ubuntu:
sudo apt install python3-dev default-libmysqlclient-dev build-essential - RedHat/CentOS:
sudo yum install python3-devel mysql-devel gcc - macOS:先通过Homebrew执行
brew install mysql-client pkg-config,再执行如下命令重装:export PKG_CONFIG_PATH="/usr/local/opt/mysql-client/lib/pkgconfig" pipenv install mysqlclient - Windows:直接下载对应Python版本、系统架构的预编译mysqlclient whl包,执行
pipenv install 本地whl文件路径完成安装,避免本地编译失败。
- Debian/Ubuntu:
- 第四步:版本兼容校验
如果使用Django 4.2及以上版本,要求mysqlclient版本不低于1.4.3,可执行pipenv install 'mysqlclient>=1.4.3'指定兼容版本安装。同时确认Python架构和mysqlclient架构一致,32位Python无法使用64位mysqlclient包。 - 备选方案:使用pymysql替代
如果始终无法正常安装mysqlclient,可改用纯Python实现的pymysql兼容替代:- 执行
pipenv install pymysql - 在Django项目根目录的
__init__.py文件中添加如下代码:import pymysql pymysql.install_as_MySQLdb()
- 执行
内容的提问来源于stack exchange,提问作者zdavis
相关产品推荐
相关产品推荐

