pip install mariadb'提示在我的Windows 10桌面找不到include文件'mysql.h

-2 投票
2 回答
53 浏览
提问于 2025-04-12 09:45

我在我的电脑上以管理员身份运行了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 文件中的路径。

撰写回答