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

问题描述 投票:13回答:5

这是这个问题:我尝试像这样安装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:

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

运行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

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

python mysql sql pip
5个回答
23
投票

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

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

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

并运行

pip install "path to the downloaded .whl file"

8
投票

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


1
投票

这是Windows 10上64位版本的python的问题。以下修复了我的问题。

  1. 安装32位版本的python for windows(目前版本3.7.1)
  2. 为C ++安装visual studio构建工具https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017
  3. https://downloads.mysql.com/archives/c-c/安装32位mysql连接器版本6.1.11

在此之后,我能够使用pip install mysqlclint安装mysqlclient。

希望有人会提出一个更好的解决方案,不需要降级到32位,因为这不是一个好的解决方案,它只是有效。我找到了解决mysql问题的方法,但在尝试安装频道时又遇到了问题。似乎python 64位正在寻找32位库而不是Windows上的64位库。到目前为止,这个解决方案已经解决了我在Windows上的所有python构建问题。


1
投票

我有这个问题(完全相同的错误),并尝试了上面提到的所有解决方案,并且它们都没有工作(至少对我来说),实际上我正在解决这个问题,直到我发现解决方案非常奇怪,简单而愚蠢的方式!! 。

我做了以下步骤,以便解决问题,让生活再次变得甜美。

首先我从MySQL Connector/C安装了here

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

请注意,如果MySQL中不存在Program files (x86)文件夹,则可能必须创建mysqlclient文件夹(它对我来说不存在)

就这么简单,它对我有用,似乎对于某些(或所有)64位窗口,点或更多可能Program files (x86)安装脚本只搜索Program files文件夹中的某些MySQL文件(例如'mysql.h')并且没有'搜索Program files (x86),因为在pip install mysqlclient 没有找到任何东西引起错误非常愚蠢!不是吗


0
投票

浪费了很多时间来解决这个错误,我发现至少对我有用的解决方案。

当我试图安装MYSQL客户端

pip install -U channels

第一个错误

MySQLdb / _mysql.c(29):致命错误C1083:无法打开包含文件:'mysql.h':没有这样的文件或目录


并且还尝试安装Django频道

https://visualstudio.microsoft.com/downloads/

第二个错误

错误:需要Microsoft Visual C ++ 14.0。使用“Microsoft Visual C ++构建工具”获取它:Microsoft Build Tools

下载构建工具:How to install/select required Build Tools

堆栈溢出:Python 64 bit 3.7.3

已安装的构建工具。 (快乐编码)


@Ralph Ritoch解决方案为我以及其他那些得到Mysql客户端错误的解决方案。

但我也安装了Django频道,所以我按照下面提到的步骤

跟着这些步骤

  1. Windows 10 64位
  2. mysql-connector-c-6.1.11-winx64
  3. Build tools
  4. Django Channels 2.2.0

我还安装了Successfully installed mysqlclient 并没有出现任何错误。

Other Stack solution to change dirctory


(注意)

MySQL连接器已经安装到x86目录中

将c:\ Program Files \ MySQL \ MySQL Connector C 6.0.2 \目录复制到c:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \

所以我没有改变MySQL Connector的目录。 (你也可以检查一下)

也许为你工作!

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.


可能的原因

我们为什么会出错。

  1. Python 32/64位版本
  2. MySQL Connector 32/64位版本
  3. 目录问题
  4. 窗口32/64位版本
  5. 未安装构建工具(如果需要获取Microsoft Visual C ++ 14.0)

感谢所有发布解决方案的人。


0
投票

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

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" -

你读得好吗?...我假设你拥有一切......构建工具,MySQL Connector C 6.1 ......你甚至把它移到Program Files(x86)......所以它错了...... ?? ... 现在仔细看看

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

我很确定你看到了......还没有?....让我为你加油吧

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

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

MariaDB的 好吧,它不能比这更愚蠢...安装程序查找mariadb包含和后来的libs只需转到mariadb站点并下载MariaDB C / C ++连接器并安装它... 好吧它没有结束..转到C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ include和create folder mariadb ...并从mariaDb连接器安装包含文件夹中复制粘贴内容 再次不要去...转到C:\ Program Files(x86)\ MySQL \ MySQL Connector C 6.1 \ lib并再次为lib文件夹执行相同的操作 所以你应该有

pip3 install mysqlclient

现在打了Successfully installed mysqlclient-1.4.2.post1 并享受安装没有唠叨...结束

python --

-1
投票

在命令行中,只需键入:

python --version

代替:

qazxswpoi

(这应显示有关该版本的更多详细信息,包括它是32位还是64位)

© www.soinside.com 2019 - 2024. All rights reserved.