在开发Django时,刚开始使用的sqlite进行开发,想部署到生产环境需要连接到mysql上再跑一边测试。为了不破坏整机的文件环境,我使用了Docker运行了Mysql。并没有通过源码的方式或brew命令来安装mysql。在刚运行Django 的 migrate命令的时,便提示我不存在连接mysql的库,叫我安装mysqlclient。顺带一提,mysqlclient 是Python3中的MySQLdb, 它实现了与MySQLdb相兼容的接口,可以完美的替代MySQLdb,并且不用对代码做任何修改。此时,我的电脑上没有任何关于mysql的文件(除了Docker镜像外)
操作环境:
操作系统:MacOS X 10.13.1
mysql运行环境:Docker
Docker版本:17.09-ce
运行
1 | $ pip install mysqlclient |
出现了下面的问题
1 | Collecting mysqlclient |
大意便是说,我的系统中缺少了mysql_config文件。
于是我是用brew 安装了mysql-connector-c ,安装再次运行安装mysqlclient的命令,相应的错误没有了,但是却出现了下面的错误
1 | Collecting mysqlclient |
这个问题果然不是我一个人遇到的。在mysqlclient的issue上我找到了相应的解决办法
Issue #169
即修改mysql_config中的下列内容
1 | vim /usr/local/bin/mysql_config |
修改为
1 | # Create options |
修改完后就能够安装mysqlclient了呢。
修改mysql_config文件可能会遇到的问题:
mysql_config文件不可写。
在我的机器山,文件/usr/local/bin/mysql_config 为符号文件,通过ls命令,找到原来的文件,修改为可写文件,进行修改后,为防止被不小修改,再设为只读文件就好了。