您的位置:首页 > 数据库 > MySQL

在macOS中出现_mysql.c:44:10: fatal error: 'my_config.h' file not found报错的解决方案&成功安装的方法介绍

2018-11-29 17:43 4619 查看

博主使用的是mac自带的python2.7,在尝试直接sudo easy_install mysql-python失败后,又下载压缩包自行安装mysql-python时,出现了如题的错误,困扰了很久终于解决,下面介绍博主安装过程所遇到的几个问题和解决方法:

  1. 首先需要下载mysql-python安装包(下载地址 https://pypi.org/project/MySQL-python/#files ),解压后进入目录找到site.cfg文件,用编辑器打开,将#mysql_config = /usr/local/bin/mysql_config这一行的注释去掉,然后把路径更改为自己的安装路径,如mysql_config = /usr/local/mysql/bin/mysql_config。

  2. 第二步需要检查是否安装了gcc编译器套件,可以通过执行which gcc查看,若返回/usr/bin/gcc或类似内容,即证明已安装。(如果没有安装,需自行install gcc和其对应的python-devel环境)。

  3. 接下来在解压后的文件夹目录下依次执行
    sudo python setup.py clean
    sudo python setup.py build
    sudo python setup.py install

    其中在build时出现了_mysql.c:44:10: fatal error: ‘my_config.h’ file not found 错误,意为缺少MySQL的头文件。此时需要安装mysq-connector-c,执行brew install mysql-connector-c,在执行brew安装命令时可能会出现权限不够的问题,此时可执行sudo chown -R $(whoami) /usr/local/var/homebrew来增加权限。
    (若未安装homebrew,可参考 https://www.geek-share.com/detail/2624593340.html )。

  4. 在安装成功后(如下图),可以运行python,进入命令行import MySQLdb进行尝试。

    此时可能会出现类似于ImportError: dlopen(/Users/qtvspa/Library/Caches/Python-Eggs/MySQL_python-1.2.5-py2.7-macosx-10.13-intel.egg-tmp/_mysql.so, 2): Library not loaded: libcrypto.1.0.0.dylib的报错,

    这是因为python没有在默认的目标文件夹内找到导包所需的镜像文件,因此我们需要将镜像文件拷贝到目标文件夹中。如果出现多个镜像包都无法导入的情况,需要一个一个分别拷贝。执行sudo ln -s /usr/local/mysql/lib/libssl.1.0.0.dylib /usr/lib/libssl.1.0.0.dylib即可,而后再进行MySQLdb的导入就没有问题啦。

相关参考
[1]: https://stackoverflow.com/questions/7475223/mysql-config-not-found-when-installing-mysqldb-python-interface/33928783#33928783
[2]: https://www.sunnyos.com/article-show-38.html
[3]: https://www.geek-share.com/detail/2568746000.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐