pip install mariadb'提示在我的Windows 10桌面找不到include文件'mysql.h
我在我的电脑上以管理员身份运行了cmd.exe。然后输入了:pip install mariadb
,但是它显示了以下内容:
Collecting mariadb
Using cached mariadb-1.1.10.tar.gz (84 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting packaging (from mariadb)
Using cached packaging-24.0-py3-none-any.whl.metadata (3.2 kB)
Using cached packaging-24.0-py3-none-any.whl (53 kB)
Building wheels for collected packages: mariadb
Building wheel for mariadb (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for mariadb (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [37 lines of output]
using environment configuration C:\path\to\mariadb-connector-c
Found MariaDB Connector/C in 'C:\path\to\mariadb-connector-c'
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-313
creating build\lib.win-amd64-cpython-313\mariadb
copying mariadb\__init__.py -> build\lib.win-amd64-cpython-313\mariadb
copying mariadb\connectionpool.py -> build\lib.win-amd64-cpython-313\mariadb
copying mariadb\connections.py -> build\lib.win-amd64-cpython-313\mariadb
creating build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\__init__.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\CAPABILITY.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\CLIENT.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\CURSOR.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\ERR.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\FIELD_FLAG.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\FIELD_TYPE.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\EXT_FIELD_TYPE.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\INDICATOR.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\INFO.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\STATUS.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\constants\TPC_STATE.py -> build\lib.win-amd64-cpython-313\mariadb\constants
copying mariadb\cursors.py -> build\lib.win-amd64-cpython-313\mariadb
copying mariadb\dbapi20.py -> build\lib.win-amd64-cpython-313\mariadb
copying mariadb\field.py -> build\lib.win-amd64-cpython-313\mariadb
copying mariadb\release_info.py -> build\lib.win-amd64-cpython-313\mariadb
running build_ext
building 'mariadb._mariadb' extension
creating build\temp.win-amd64-cpython-313
creating build\temp.win-amd64-cpython-313\Release
creating build\temp.win-amd64-cpython-313\Release\mariadb
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DPY_MARIADB_MAJOR_VERSION=1 -DPY_MARIADB_MINOR_VERSION=1 -DPY_MARIADB_PATCH_VERSION=10 -DPY_MARIADB_PRE_RELEASE_SEGMENT=\"None\" -DPY_MARIADB_PRE_RELEASE_NR=\"0\" -DPY_MARIADB_POST_RELEASE_SEGMENT=\"None\" -DPY_MARIADB_POST_RELEASE_NR=\"0\" -I.\include -IC:\path\to\mariadb-connector-c\include -IC:\path\to\mariadb-connector-c\include\mysql -IC:\Python313\include -IC:\Python313\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tcmariadb/mariadb.c /Fobuild\temp.win-amd64-cpython-313\Release\mariadb/mariadb.obj /MD
mariadb.c
.\include\mariadb_python.h(27): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mariadb
Failed to build mariadb
ERROR: Could not build wheels for mariadb, which is required to install pyproject.toml-based projects
这是为什么呢?
我已经把我的Visual C++更新到最新版本了,我的Python版本是3.13,pip的版本是24.0,路径是C:\Python313\Lib\site-packages\pip
。
有人能帮我解决这个问题吗?
2 个回答
1
你可能缺少MariaDB Connector/C的库文件和头文件。去官方的下载网站,安装所有在“前提条件”标签下列出的内容。
https://mariadb-corporation.github.io/mariadb-connector-python/install.html#build-prerequisites?
然后你就可以开始了!
1
你正在尝试用 Python 3.13 alpha 安装 MariaDB Connector/C(稳定版本预计在 2024 年 10 月发布)。
Pypi.org 为所有非过时的稳定版本提供了 MariaDB Connector/C 的轮子包,但开发版本没有提供。对于这些版本,你需要先安装 MariaDB Connector/C。
出现错误是因为你设置了环境变量 MARIADB_CC_INSTALL_DIR
(指向 C:\path\to\mariadb-connector-c),但在这个目录下并没有安装 MariaDB Connector/C。
如果你是通过 MSI 安装 MariaDB Connector/C 的,MariaDB Connector/Python 会自动找到它。如果你是手动安装的,推荐的做法是修改 site.cfg 文件中的路径。