MacOS High Sierra下pipenv安装mysqlclient失败报错求助
解决MacOS High Sierra 10.13.4上pipenv安装mysqlclient失败的问题
这个报错我之前在老版本MacOS上踩过坑,本质是MySQL头文件的类型定义和mysqlclient版本不兼容——新版本mysqlclient用了更新的类型,但你的系统里的MySQL相关头文件还是旧的,所以编译时找不到my_bool这个标识符。
先把你遇到的报错贴出来:
_mysql.c:1894:3: error: use of undeclared identifier 'my_bool'
my_bool recon = reconnect;
^
_mysql.c:1895:58: error: use of undeclared identifier 'recon'
mysql_options(&self->connection, MYSQL_OPT_RECONNECT, &rec...
下面给你两种可行的解决办法,选一种就行:
方法一:安装完整MySQL并配置环境变量
- 用Homebrew安装MySQL(如果还没装Homebrew,先装它):
brew install mysql - 设置环境变量,让编译工具能找到MySQL的头文件和库:
要是想让这些环境变量永久生效,可以把上面三行加到你的export PATH="/usr/local/opt/mysql/bin:$PATH" export LDFLAGS="-L/usr/local/opt/mysql/lib" export CPPFLAGS="-I/usr/local/opt/mysql/include"~/.bash_profile或者~/.zshrc里。 - 重新运行pipenv安装:
pipenv install mysqlclient
方法二:指定兼容的mysqlclient旧版本
如果不想装完整的MySQL,可以直接安装和旧版MySQL头文件兼容的mysqlclient版本,比如1.3.14:
pipenv install mysqlclient==1.3.14
这个版本的mysqlclient还在使用my_bool类型,和你系统里的头文件匹配,就能顺利编译安装了。
内容的提问来源于stack exchange,提问作者dsapalo
相关产品推荐
相关产品推荐

