Mac OS 安装mysqlclient 遇到的坑~
最近在学习Python, 因为Django连接mysql 需要安装mysqlclient, 但Mac安装遇到各种问题,这里记录一下,避免以后再踩坑。
1. 正常情况下,安装mysqlclient ,只要执行命令: pip install mysqlclient 即可。
但Mac如果没有安装过mysql驱动, 会提示如下报错: mysql_config: command not found !!!

2. 查阅官网: https://pypi.org/project/mysqlclient/
官网介绍到,安装mysqlclient 之前,需要先安装mysql-connector-c

执行命令安装mysql-connector-c
brew install mysql-connector-c
如果安装过程中出现如下pkg-config类似错误, 那么说明需要安装pkg-config
error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config.
下面是到官网下载pkg-config 并安装, 如果没有出现上面pkg-config的错误, 可以跳过这一步, 直接到第3步即可
pkg-config 官网链接: https://www.freedesktop.org/wiki/Software/pkg-config/

点击version 0.29.2 进行下载, 下载完成后解压,进入目录顺序执行下面3步。
./configure make make install
如果不幸, 在执行第一步的时候就出现如下错误:
configure: error: Either a previously installed pkg-config or "glib-2.0 >= 2.16" could not be found. Please set GLIB_CFLAGS and GLIB_LIBS to the correct values or pass --with-internal-glib to configure to use the bundled copy.
则可把第一步的命令改成
./configure --with-internal-glib
安装成功后,建议重启电脑(我没重启电脑前,还是没法安装mysql-connector-c)
3. 安装mysql-connector-c成功后, 根据官方说明, 这东西在MacOS中居然有bug!!

还好, 官网说明这东西还有解决版本,就是修改mysql_cofig配置文件,如果你不知道mysql_config在哪里, 可以执行下面命令查找
which mysql_config
然后修改mysql_config 里面的112行, 不过which mysql_config 查找处理的文件可能只是mysql_config的一个链接(macOS 俗称替身, 无法直接修改)
所以我们要找到它的原身。 例如你which mysql_config 找到的路径为: /usr/local/bin/mysql_config
那么我们cd 到该路径 /usr/local/bin/ 下, 然后执行 ls -l 查看文件信息

可以看到mysql_config 的真实路径是在../Cellar/mysql-connector-c/6.1.11/bin/mysql_config
这样我们就可以找到它,再进行如下修改了:
Change # on macOS, on or about line 112:
# Create options
libs="-L$pkglibdir"
libs="$libs -l " to # Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
修改成功后,这时候我们就可以执行安装mysqlclient了
pip install mysqlclient
Mac OS 安装mysqlclient 遇到的坑~的更多相关文章
- Mac os安装DVWA环境教程
Mac os安装DVWA环境教程 1.尽管Mac自带Apache和php 事实上Mac和WIN都用XAMPP一键化安装比较方便 2.解压DVWA-master 改名为dvwa移动到XAMPP的目录 3 ...
- mac OS 安装配置Nginx服务器
系统环境 安装工具 Homebrew软件包管理器 :<mac OS 安装 Homebrew软件包管理器>https://blog.csdn.net/weixin_41791279/arti ...
- <亲测好使>mac os 安装mcrypt扩展
以前安装opencart的时候倒是不需要mcrypt 这个库.但是新版本需要了.加上自己的 是mac环境.当时闲麻烦,就一直没装.这次下午就寻思给装上吧! 1.首先你要先安装xcode这个工具.不然没 ...
- Mac OS安装Windows各版本时注意事项(2014年后的Mac机相信会有这些问题)
2014年后的Mac Mini安装Windows时候,会遇上更种坑,我这几天不断失败及尝试更种版本,各有心得体会,我写下来是为了避免大家遇到像我这种问题. (2014年之前的Mac Mini是否这样, ...
- Mac OS安装octave出现的问题-'error:terminal type set to 'unknown'的解决'
学习Machine learning需要使用Octave语言,毕竟Andrew Ng (恩达.吴)力荐.本机系统Mac OS X EI Capitan, 其实什么系统都无所谓了,安装原理都是一样的. ...
- Mac OS 安装Wget
没有Wget的日子是非常难过的,强大的Mac OS 下安装Wget非常简单 下载一个Wget的源码包,http://www.gnu.org/software/wget/ 安装与配置 1. 首先下载一个 ...
- Mac OS安装Scrapy失败
报错: DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be re ...
- Mac OS安装Scrapy
个人觉得掌握简单的爬虫知识非常有用,特别是想要从一些特定网站自动地下载一些资源或者统计一些数据,非常的有用.对于产品经理来说,如果要了解竞争产品.替代产品的价格,可以写一个爬虫脚本从各大电商网站爬取相 ...
- Python 环境搭建(Win 安装以及Mac OS 安装)
千里之行始于足下,今天我们先来学习 Python 环境搭建. 注意:本系列教程基于 Python 3.X Python 环境搭建 Win 安装 打开 Python 官网 https://www.pyt ...
随机推荐
- python 基本数据类型之列表
#列表是可变类型,可以增删改查#字符串不可变类型,不能修改,只能生成新的值. #1.追加 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # user_list.ap ...
- MYSQL事务之Yii2.0商户提现
我是一个半路出家的PHP程序员,到目前为止,不算在培训班学习的时间,已经写代码整整两年了.可能由于工作业务的原因,在这两年中我没有用到过MySQL事务.就在昨天有个关于支付宝转账的业务不得不使用MyS ...
- ZOJ 3955:Saddle Point(思维)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3955 题意:给出一个n*m的矩阵,定义矩阵中的特殊点Aij当且仅当Aij是 ...
- Go - 循环
目录 概述 循环 array 循环 slice 循环 map break continue goto switch 推荐阅读 概述 前几篇文章分享了 array 数组.slice 切片.map 集合, ...
- tomcat 启动窗口 名称 中文乱码
- Oracle数据库备份---导出与导入
利用windows的cmd命令备份导出数据(也可以连接上sqlplus进行操作)--导出--将数据库orcl完全导出 exp system/oracle@orcl file=c:\oracle_bak ...
- 关于String重写的hashcode的代码分析
public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = valu ...
- 2. 软件数据流图(DFD)
数据流图,简称DFD,是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型. 下图是一个飞机机票预订系统 ...
- 盘一盘 System.out.println()
System.out.println("Hello World")是大部分程序员入门的第一行代码,也可以说是程序员们最熟悉的一行代码.大家真的深入研究过System.out.pri ...
- Java线程安全与数据同步
import java.util.HashMap; import java.util.concurrent.TimeUnit; public class Test { public static vo ...