使用 Python 3.6.5 安装 MySQLdb 时出现问题:无法打开“mysql.h” - 并且无法打开:“config-win.h”:没有这样的文件或目录

Posted

技术标签:

【中文标题】使用 Python 3.6.5 安装 MySQLdb 时出现问题:无法打开“mysql.h” - 并且无法打开:“config-win.h”:没有这样的文件或目录【英文标题】:Issues installing MySQLdb with Python 3.6.5: Can't open 'mysql.h' - and Can't open : 'config-win.h': No such file or directory 【发布时间】:2018-12-09 15:58:39 【问题描述】:

我正在尝试将 mysql 与 python SQLAlchemy 一起使用,但是 python 无法安装 MySQL,甚至无法识别它已安装。详情如下:

    我在 Windows 10 64 位和 Anaconda Python 3.6.5 上运行它

    我通过 MAMP 下载了 MySQL:Mac-Apace-MySQL-php https://www.mamp.info/en/

    我已尝试在 VSC 和 Jupyter 上运行我的代码。

    如果我尝试运行代码pip install mysqlclient

    _mysql.c(29): 致命错误 C1083: 无法打开包含文件: 'mysql.h': 没有这样的文件或目录 错误:命令 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe' 失败,退出状态为 2

    我试过pip install MySQL-python,但得到了

    _mysql.c _mysql.c(42):致命错误 C1083:无法打开包含文件:'config-win.h':没有这样的文件或目录 错误:命令 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe' 失败,退出状态为 2

    我试过pip install MySQLdb 并得到:

    收集 MySQLdb 找不到满足要求的版本 MySQLdb(来自版本:) 没有为 MySQLdb 找到匹配的分布

    我尝试从实际的 Oracle 网站安装 MySQL,但没有成功

    我尝试将 MySQL 连接器下载到 python:我明白了 未找到 python v3.6。我们只支持使用 MSI 的 python。

我在 SoF 上搜索过这个问题,但每个问题要么已经过时,要么针对该海报的案例而定制,老实说,我不知道从哪里开始。我已经读到这可能是一个配置问题,python 无法判断 MySQL 的位置,所以我需要自定义它的路径,但我没有技术深度来干预它,因为我担心我最终可能会变得更糟。

我衷心感谢您对此事的任何意见,因为我真的陷入困境并且不知道从这里去哪里。

【问题讨论】:

你有 MySQL 的开发头文件吗?这通常是一个单独的包,可能不随 MAMP 提供。 不,请告诉我更多信息 这就是mysql.h 和朋友的来源。在 Linux/macOS 上,这很简单,您只需安装正确的包,但我不确定 Windows 上的 MAMP 等价物是什么。关键是在尝试pip install 任何依赖它们的东西之前找到“开发标头”。 我试过开发​​头:dev.mysql.com/downloads/installer Can't install mysql-python (newer versions) in Windows的可能重复 【参考方案1】:

使用precompiled binary whl file from Cristoph Golke。这比设置完整的开发环境来编译单个库要容易得多。

下载 .whl 文件,然后在您正在使用的 python 环境中pip install <path to .whl>

【讨论】:

经过数小时的搜索后,这一款效果很好......谢谢【参考方案2】:

安装Mysql Connector/C 并重新启动pip install mysqlclient。如果您的 Visual C 安装正确,它将工作

【讨论】:

【参考方案3】:

也许您正在打开使用 python 进程执行的文件之一,需要下载以进行安装(根据我的经验,我正在打开 Pycharm,并且该进程正在使用“_mysql.cp36-win_amd64.pyd”文件)

希望这对某人有所帮助

【讨论】:

【参考方案4】:

这里和其他地方的解决方案都不适合我。原来我的 64 位 Windows 10 操作系统上安装了不兼容的 32 位版本的 mysqlclient。

我必须卸载当前的 Python 3.7 32 位,然后重新安装 Python 3.7 64 位,现在一切正常

【讨论】:

【参考方案5】:

要安装 mysqlclient,您需要 Visual C++ 2015 Build Tools。使用以下链接下载 visualstudio 工具。 http://go.microsoft.com/fwlink/?LinkId=691126&fixForIE=.exe.

现在您需要通过在命令行中使用以下命令在路径变量中设置您的 Visual Studio 路径。

“设置路径“C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC””

现在您需要使用以下命令安装 mysqlclient “点安装mysqlclient”

如果您发现类似“MySQLdb/_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory 错误:命令 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.exe' 失败,退出状态为 2”

所以你需要下载.whl文件直接安装,你可以根据你的系统兼容性使用下面的链接下载。

“https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.Then”

“mysqlclient-1.4.2-cp37-cp37m-win32.whl”文件对我有用。

“pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl”

Mysqlclient 正在安装!!

需要根据mysql修改setting.py

DATABASES = 
'default': 
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'learnpython',
    'USER': 'nilesh',
    'PASSWORD': 'Radhe@12',
    'HOST': 'localhost',
    'PORT': 3306

现在享受 Django 与 mysql 的连接!! 更多详情“http://itfundasphp.blogspot.com/2019/06/django-connect-to-mysql.html

【讨论】:

【参考方案6】:

在我的 Django 项目中安装 mysqlclient 时出现此错误。 _mysql.c(29):致命错误 C1083:无法打开包含文件:'mysql.h':没有这样的文件或目录错误:命令'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\ Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe' 失败,退出状态为 2

我找到了解决此问题的方法。 原因是mysqlclient版本根据你的Python版本不匹配

首先,您可以检查python版本

python --version

然后就可以根据python版本安装mysqlclient版本了。

如果python版本是3.7,那么可以安装mysqlclient==1.3.14或者直接下载 mysqlclient-1.3.14-cp37-cp37m-win_amd64.whl 文件。

如果你的python版本是3.6,那么可以安装mysqlclient==1.3.13或者直接下载 mysqlclient-1.3.13-cp36-cp36m-win_amd64.whl文件。

【讨论】:

【参考方案7】:

我也遇到了同样的问题。 我只是简单地下载了 python-64 安装程序并安装在我的机器上,并选择了 64bit 作为interperter。

我不明白为什么 32 位 python 在这里不起作用。

我希望这可能会有所帮助。

【讨论】:

How do I write a good answer?【参考方案8】:

pip install mysqlclient 对我不起作用

我试过 pip install --only-binary :all: mysqlclient 并且工作得像个魅力

【讨论】:

以上是关于使用 Python 3.6.5 安装 MySQLdb 时出现问题:无法打开“mysql.h” - 并且无法打开:“config-win.h”:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

Scrapy安装-环境python 3.6.5

python及pip安装(windows10+ Python 3.6.5最简单的安装配置方式)

Centos7手动编译安装Python3

使用 Python 3.6.5 安装 MySQLdb 时出现问题:无法打开“mysql.h” - 并且无法打开:“config-win.h”:没有这样的文件或目录

Redhat7/centOs7 安装配置python3.6.5

[linux]centos7.4上升级python2版本到python3.6.5 安装双版本,默认python3