关于安装MySQLdb出现fatal error: my_config.h: No such file or directory

本文详细记录了在安装Python的MySQLdb模块过程中遇到的一个常见错误:“_mysql.c:44:23: fatal error: my_config.h: No such file or directory”的解决方法。通过安装mysql-devel包成功解决了该问题。

今天在安装python的模块MySQLdb时,在编译源码时,一直出现一个错误,下面是编译信息:



running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
copying _mysql_exceptions.py -> build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/MySQLdb
copying MySQLdb/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb
copying MySQLdb/converters.py -> build/lib.linux-x86_64-2.7/MySQLdb
copying MySQLdb/connections.py -> build/lib.linux-x86_64-2.7/MySQLdb
copying MySQLdb/cursors.py -> build/lib.linux-x86_64-2.7/MySQLdb
copying MySQLdb/release.py -> build/lib.linux-x86_64-2.7/MySQLdb
copying MySQLdb/times.py -> build/lib.linux-x86_64-2.7/MySQLdb
creating build/lib.linux-x86_64-2.7/MySQLdb/constants
copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-x86_64-2.7
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1.2.4b4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -g -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing
_mysql.c:44:23: fatal error:  
               my_config.h: No such file or directory
#include "my_config.h"
                       ^
compilation terminated.
error: command 'gcc' failed with exit status 1

在网上找了好长时间,一直不知道什么原因,终于找到了解决的方案:先安装mysql-devel,mysql-devel为编译mysql相关客户程序所需的库和包含文件,如果你想要编译其他MySQL客户程序,就必须先安装mysql-devel,

如果是debain系:sudoapt-get install mysql-devel

如果是redhat系:sudoyum install mysql-devel

然后正常使用:

python setup.py build

python setup.py install

相关文章:http://stackoverflow.com/questions/14244866/mysqldb-install-error-mysql-c4423-error-my-config-h-no-such-file-or-dire

转载于:https://www.cnblogs.com/csdndreamer/p/5490632.html

(mg_env) ubuntu@ubuntu-64:~$ pip install mysqlclient Collecting mysqlclient Using cached mysqlclient-2.2.7.tar.gz (91 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: mysqlclient Building wheel for mysqlclient (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for mysqlclient (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [41 lines of output] Trying pkg-config --exists mysqlclient # Options for building extension module: extra_compile_args: ['-I/usr/include/mysql', '-std=c99'] extra_link_args: ['-lmysqlclient'] define_macros: [('version_info', (2, 2, 7, 'final', 0)), ('__version__', '2.2.7')] running bdist_wheel running build running build_py creating build/lib.linux-x86_64-cpython-38/MySQLdb copying src/MySQLdb/__init__.py -> build/lib.linux-x86_64-cpython-38/MySQLdb copying src/MySQLdb/times.py -> build/lib.linux-x86_64-cpython-38/MySQLdb copying src/MySQLdb/_exceptions.py -> build/lib.linux-x86_64-cpython-38/MySQLdb copying src/MySQLdb/converters.py -> build/lib.linux-x86_64-cpython-38/MySQLdb copying src/MySQLdb/cursors.py -> build/lib.linux-x86_64-cpython-38/MySQLdb copying src/MySQLdb/connections.py -> build/lib.linux-x86_64-cpython-38/MySQLdb copying src/MySQLdb/release.py -> build/lib.linux-x86_64-cpython-38/MySQLdb creating build/lib.linux-x86_64-cpython-38/MySQLdb/constants copying src/MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-cpython-38/MySQLdb/constants copying src/MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-cpython-38/MySQLdb/constants copying src/MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-cpython-38/MySQLdb/constants copying src/MySQLdb/constants/ER.py -> build/lib.linux-x86_64-cpython-38/MySQLdb/constants copying src/MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-cpython-38/MySQLdb/constants copying src/MySQLdb/constants/CR.py -> build/lib.linux-x86_64-cpython-38/MySQLdb/constants running egg_info writing src/mysqlclient.egg-info/PKG-INFO writing dependency_links to src/mysqlclient.egg-info/dependency_links.txt writing top-level names to src/mysqlclient.egg-info/top_level.txt reading manifest file 'src/mysqlclient.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE' writing manifest file 'src/mysqlclient.egg-info/SOURCES.txt' copying src/MySQLdb/_mysql.c -> build/lib.linux-x86_64-cpython-38/MySQLdb running build_ext building 'MySQLdb._mysql' extension creating build/temp.linux-x86_64-cpython-38/src/MySQLdb x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC "-Dversion_info=(2, 2, 7, 'final', 0)" -D__version__=2.2.7 -I/home/ubuntu/.virtualenvs/mg_env/include -I/usr/include/python3.8 -c src/MySQLdb/_mysql.c -o build/temp.linux-x86_64-cpython-38/src/MySQLdb/_mysql.o -I/usr/include/mysql -std=c99 src/MySQLdb/_mysql.c:52:10: fatal error: Python.h: 没有那个文件或目录 52 | #include "Python.h" | ^~~~~~~~~~ compilation terminated. error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for mysqlclient Failed to build mysqlclient ERROR: Failed to build installable wheels for some pyproject.toml based projects (mysqlclient) 还是显示这个错误
最新发布
05-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值