mysql - 致命错误:mysql.h:安装mariadb时没有这样的文件或目录
问题描述
我一直在尝试安装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
已经是最新版本了。
解决方案
推荐阅读
- angularjs - 如果用户离开域,则获取用户对 beforeunload 事件的响应
- javascript - 我想根据输入文本框中的标记更改学生标签的颜色,但我的 java 脚本代码有问题
- tfs - 根据字段的值变化查询 TFS
- angular - 在功能模块中声明服务的最佳方式是什么?
- git - 无法访问 repo:OpenSSL SSL_connect: SSL_ERROR_SYSCALL 连接到 github.com:443?
- sql - 带有简单 SELECT/FROM/WHERE 语句的 SQL Teradata 错误 3704 - 找不到错误
- javascript - 如何在 TypeScript 中使用 document.getElementById() 方法?
- rx-java2 - 为什么doOnComplete会立即执行而不管延迟()
- windows - 在 Windows 上链接 SHARED 库
- spring-boot - AWS Lambda - Spring Boot 未处理请求