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 ...
随机推荐
- 常用的方法论-NPS
- 004-python-列表、元组、字典
1. 什么是列表 列表是一个可变的数据类型 列表由[]来表示, 每一项元素使用逗号隔开. 列表什么都能装. 能装对象的对象. 列表可以装大量的数据 2. 列表的索引和切片 列表和字符串一样. 也有索引 ...
- HDU 1025:Constructing Roads In JGShining's Kingdom(LIS+二分优化)
http://acm.hdu.edu.cn/showproblem.php?pid=1025 Constructing Roads In JGShining's Kingdom Problem Des ...
- spark 源码分析之十四 -- broadcast 是如何实现的?
本篇文章主要剖析broadcast 的实现机制. BroadcastManager初始化 BroadcastManager初始化方法源码如下: TorrentBroadcastFactory的继承关系 ...
- Windows 下配置 Logstash 为后台服务
到目前为止,logstash 没有给出官方的,在 windows 系统中作为后台服务运行的方式.本文将介绍如何使用第三方工具 nssm 让 logstash 作为后台服务运行在 windows 中.说 ...
- JS代码实现复制功能
本人没什么基础看了好久百度,不知道为什么在百度上问一个js实现copy功能会多出那么多代码出来,感觉废话一堆效果还没能达到需要复制 的效果. 然而在我看来,js复制代码 无非就那么几句罢了.原生cop ...
- C# .net Ueditor实现图片上传到阿里云OSS 对象存储
在学习的时候,项目中需要实现在Ueditor编辑器中将图片上传到云储存中,老师演示的是上传到又拍云存储,既然看了一遍,直接照搬不算本事,咱们可以依葫芦画瓢自己来动手玩玩其它的云存储服务. 现在云计算产 ...
- Python爬虫学习代码
[1]用一个简单的程序来显示Python的数字类型. code: class ShowNumType(object): def __init__(self): self.showInt() self. ...
- xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突(当指针访问异常时,应考虑是不是对象未创建)。
xx.exe 中的 0x014180bd 处有未经处理的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突
- js深入之call、apply和bind
一. call和apply 1. 代码完整实现 Function.prototype.mycall = function (context, ...argus) { if (typeof this ! ...