【问题标题】:fatal error: mysql.h: No such file or directory when installing mariadb致命错误:mysql.h:安装mariadb时没有这样的文件或目录
【发布时间】:2020-11-26 07:45:10
【问题描述】:

我一直在尝试安装mariadb==1.0.4,但每次都说./include/mariadb_python.h:27:19: fatal error: mysql.h: No such file or directory失败

堆栈跟踪如下:

    Running setup.py install for mariadb ... error
    ERROR: Command errored out with exit status 1:
     command: /home/s/dbSync/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-6v5t56ge/mariadb/setup.py'"'"'; __file__='"'"'/tmp/pip-install-6v5t56ge/mariadb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ju1qda35/install-record.txt --single-version-externally-managed --compile --install-headers /home/s/dbSync/include/site/python3.7/mariadb
         cwd: /tmp/pip-install-6v5t56ge/mariadb/
    Complete output (23 lines):
    10.4.3
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.7
    creating build/lib.linux-x86_64-3.7/mariadb
    copying mariadb/__init__.py -> build/lib.linux-x86_64-3.7/mariadb
    creating build/lib.linux-x86_64-3.7/mariadb/constants
    copying mariadb/constants/__init__.py -> build/lib.linux-x86_64-3.7/mariadb/constants
    copying mariadb/constants/CLIENT.py -> build/lib.linux-x86_64-3.7/mariadb/constants
    copying mariadb/constants/INDICATOR.py -> build/lib.linux-x86_64-3.7/mariadb/constants
    copying mariadb/constants/CURSOR.py -> build/lib.linux-x86_64-3.7/mariadb/constants
    copying mariadb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-3.7/mariadb/constants
    running build_ext
    building 'mariadb._mariadb' extension
    creating build/temp.linux-x86_64-3.7
    creating build/temp.linux-x86_64-3.7/mariadb
    x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPY_MARIADB_MAJOR_VERSION=1 -DPY_MARIADB_MINOR_VERSION=0 -DPY_MARIADB_PATCH_VERSION=4 -I/usr/local/include/mariadb -I/usr/local/include/mariadb/mysql -I./include -I/home/s/dbSync/include -I/usr/include/python3.7m -c mariadb/mariadb.c -o build/temp.linux-x86_64-3.7/mariadb/mariadb.o -DDEFAULT_PLUGINS_SUBDIR="/usr/local/lib/mariadb/plugin"
    In file included from mariadb/mariadb.c:21:0:
    ./include/mariadb_python.h:27:19: fatal error: mysql.h: No such file or directory
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/s/dbSync/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-6v5t56ge/mariadb/setup.py'"'"'; __file__='"'"'/tmp/pip-install-6v5t56ge/mariadb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ju1qda35/install-record.txt --single-version-externally-managed --compile --install-headers /home/s/dbSync/include/site/python3.7/mariadb Check the logs for full command output.

当我执行locate mysql.h 时,我可以看到该文件存在于/usr/include/mysql/mysql.h

环境细节:

Running on Virtual env 
 pip3
 ubuntu 16.04
 Python 3.7.9
 x86_64

最初的假设是这与$PATH 有关,但即使在添加/usr/include/ 之后它也不起作用。

pip3 冻结

certifi==2020.6.20
chardet==3.0.4
idna==2.10
mysqlclient==2.0.1
pypyodbc==1.3.4
requests==2.25.0
urllib3==1.26.2

libmysqlclient-dev 已经是最新版本了。

【问题讨论】:

    标签: mysql ubuntu pip mariadb


    【解决方案1】:

    你需要安装libmariadb-dev:

    sudo apt install libmariadb-dev
    

    然后重试安装mariadb 包。

    【讨论】:

    • 感谢您的回复,apt 似乎缺少此 pkg,因为我不断收到 无法找到软件包 libmariadb-dev
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多