pip install mysqlclient返回"致命错误C1083:无法打开文件:'mysql.h':没有这样的文件或目录

Aar*_*mon 27 python mysql sql pip

这是这个问题:我尝试像这样安装mysqlclient

C:\ Users\amccommon349> pip install mysqlclient收集mysqlclient使用缓存的https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1 cb31f128e6dbba70c5975c9e57896815dbb1988ad/mysqlclient-1.3.13.tar.gz

安装收集的包:mysqlclient

运行mysqlclient的setup.py安装...错误

Complete output from command c:\users\amccommon349\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\AMCCOM~1\\AppData\\Local\\Temp\\pip-install-qcgo48hf\\mysqlclient\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\AMCCOM~1\AppData\Local\Temp\pip-record-q4yoftj8\install-record.txt --single-version-externally-managed --compile:
Run Code Online (Sandbox Code Playgroud)

c:\ users\amccommon349\appdata\local\programs\python\python36\lib\distutils\d ist.py:261:UserWarning:Unknown distribution options:'long_description_content_ type'

  warnings.warn(msg)
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
copying _mysql_exceptions.py -> build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\__init__.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\compat.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\connections.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\converters.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\cursors.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\release.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\times.py -> build\lib.win-amd64-3.6\MySQLdb
creating build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\__init__.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CR.py -> build\lib.win-amd64-3.6\MySQLdb\constants

copying MySQLdb\constants\ER.py -> build\lib.win-amd64-3.6\MySQLdb\constants

copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\FLAG.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\REFRESH.py -> build\lib.win-amd64-3.6\MySQLdb\constants
Run Code Online (Sandbox Code Playgroud)

运行build_ext

building '_mysql' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe /c/nologo/Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,3,13,'final',0) -D__version__=1.3.13 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" -Ic:\users\amccommon349\appdata\local\programs\python\python36\include -Ic:\users\amccommon349\appdata\local\programs\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\ProgramFiles (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tc_mysql.c /Fobuild\temp.win-amd64-3.6\Release\_mysql.obj /Zl
_mysql.c
_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
Run Code Online (Sandbox Code Playgroud)

我确保我拥有visual studio构建工具所需的所有文件,我下载了mysql-python连接器,并更新了我的pip和设置工具.我是一个完整的初学者,并将感谢任何关于如何修复此错误的输入.

Nip*_*ath 39

您可以使用https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient下载python版本的非官方Windows二进制文件.然后使用pip安装它.这样你就可以避免处理visual studio构建工具的麻烦.

只需下载最适合您的mysqlclient.whl文件.我认为在你的情况下它会是

的mysql-1.3.13-CP36-cp36m-win_amd64.whl

并运行

pip install "path to the downloaded .whl file"
Run Code Online (Sandbox Code Playgroud)

  • 确保您下载了正确的轮子。因此,请考虑以下基本内容:(1) 如果您有 python 3.8,请使用 cp38 (2) 如果您的 python shell 是 64 位,请使用以 64 结尾的轮子,反之亦然 (3) Windows 为 64 位并不意味着您的 python 是在 64 位中,这是我的情况 (4) 通过在终端中启动 Python 解释器,您可以看到您的 Python 位。我的案例:Win32 上的 Python 3.8.5(tags/v3.8.5:580fbb0,2020 年 7 月 20 日,15:43:08)[MSC v.1926 32 位(英特尔)] (4认同)
  • ...顺便说一句,哪个不起作用(win7 x64 上的 python 3.7):错误:mysqlclient-1.4.3-cp37-cp37m-win_amd64.whl 在此平台上不受支持。 (3认同)
  • 谢谢您,先生,您是救生员。 (2认同)

小智 15

很可能,这是我见过的最愚蠢的错误之一。
我有 Python 3.7.3 32bit 和最新的 pip3,我正在将轮子安装到我的 Python 上......我偶然发现了这个 STUPID 错误......
可能我的情况有点不同,但你可以通过仔细查看来解决它在错误处.... 起初似乎缺少某些东西,您开始责怪您,Windows 32/64 位,并且列表还在继续
...退后一步...只需退后一步,只需阅读讨厌的红色错误信息.... 读得真好
就我而言,它是

ERROR: Command errored out with exit status 1:
     command: 'c:\users\myUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile
         cwd: C:\Users\MASTER~1\AppData\Local\Temp\pip-install-z7x81g2q\mysqlclient\
    Complete output (30 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.7
    creating build\lib.win32-3.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\_exceptions.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\compat.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\release.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\times.py -> build\lib.win32-3.7\MySQLdb
    creating build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.7\MySQLdb\constants
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build\temp.win32-3.7
    creating build\temp.win32-3.7\Release
    creating build\temp.win32-3.7\Release\MySQLdb
    C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-3.7\Release\MySQLdb/_mysql.obj /Zl /D_CRT_SECURE_NO_WARNINGS
    _mysql.c
    MySQLdb/_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\MyUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.
Run Code Online (Sandbox Code Playgroud)

你读得好吗?......我假设你拥有一切......构建工具,MySQL连接器C 6.1......你甚至将它移到了程序文件(x86)......那有什么错...... ?? ......
现在仔细看看

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -
Run Code Online (Sandbox Code Playgroud)

我很确定你看到了它......还是没有?......让我为你加粗

"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -
Run Code Online (Sandbox Code Playgroud)

mariadb
没有比这更愚蠢的了...安装程序会查找 mariadb 的包含和更高版本的 只需转到 mariadb 站点并下载 MariaDB C/C++ 连接器并安装它...
还没有结束...转到到C:\ Program Files文件(x86)的\ MySQL的\ MySQL的插头C 6.1 \ include和创建文件夹,MariaDB的...和复制粘贴从MariaDB的连接器安装的内容包括文件夹,
不去办法......去C: \Program Files (x86)\MySQL\MySQL Connector C 6.1\lib 并再次对lib文件夹进行相同的练习,
所以你应该有

C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb  

C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib\mariadb  
Run Code Online (Sandbox Code Playgroud)

现在点击pip3 install mysqlclient
并享受没有唠叨的安装......结束

Successfully installed mysqlclient-1.4.2.post1
Run Code Online (Sandbox Code Playgroud)


Raz*_*zvi 13

这就是解决我的问题的方法

  • 从这里安装 MySQL Connector/C(存档版本)

它可能安装在以下位置 C:\Program Files\MySQL\MySQL Connector C 6.1


  • 将整个文件夹复制MySQL Connector C 6.1C:\Program Files (x86)\MySQL\MySQL Connector C 6.1

  • 尝试执行命令pip3 install mysqlclient

成功的?好工作!


不成功?


大概安装在该位置

C:\Program Files\MariaDB\MariaDB Connector C 64-bit
Run Code Online (Sandbox Code Playgroud)
  • 复制内容来自

C:\Program Files\MariaDB\MariaDB Connector C 64-bit\include

并粘贴到文件夹中。将其命名为mariadb并将其粘贴到该位置

C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\


  • 复制内容来自

    C:\Program Files\MariaDB\MariaDB Connector C 64-bit\lib

并将其粘贴到一个文件夹中,并将其命名为mariadb并将其粘贴到该位置

`C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib`
Run Code Online (Sandbox Code Playgroud)
  • 尝试执行命令pip3 install mysqlclient

这对我有用


小智 9

尝试在64位环境中为python32安装mysqlclient时发生此错误。卸载python,然后重新安装64位版本。然后pip install mysqlclient将无错误运行。

  • 并非如此,他通过解释错误来回答了这个问题。 (3认同)

Cod*_*orm 6

我遇到了这个问题(完全相同的错误)并尝试了上面提到的所有解决方案,但它们都不起作用(至少对我而言),实际上我正要解决这个问题,直到我找到了一个非常奇怪的解决方案,简单而愚蠢的方式!!.

我做了以下步骤,使问题得到解决,生活再次变得甜蜜。

首先我MySQL Connector/C这里安装

第二个(安装完成后)我将MySQL Connector C 6.1文件夹 复制Program files/MySQLProgram files (x86)/MySQL

请注意,MySQL如果文件夹不存在Program files (x86)(对我来说不存在),则可能需要创建文件夹

就这么简单,它对我有用,似乎对于某些(或所有)64 位 Windows、pip 或更可能的mysqlclient安装脚本仅搜索Program files (x86)文件夹中的某些 MySQL 文件(例如“mysql.h”)而不搜索Program files并且因为没有找到任何东西Program files (x86)引发了非常愚蠢的错误!!!是不是