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

时间:2018-06-30 22:19:50

标签: python mysql mamp mysql-python

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

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

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

  3. 我尝试在VSC和Jupyter上运行代码。

  4. 如果我尝试运行代码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

  5. 我尝试了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

  6. 我尝试了pip install MySQLdb并得到:

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

  7. 我尝试从实际的Oracle网站安装MySQL-无效

  8. 我尝试将MySQL连接器下载到python: 找不到python v3.6。我们仅支持使用MSI的python。

我曾在SoF上搜索过此问题,但每个问题要么过时,要么针对该发帖人的情况而定制,老实说,我不知道从哪里开始。我已经读到它可能是python无法分辨MySQL所在位置的配置问题,因此我需要自定义它的路径,但由于担心我没有技术性的知识,无法介入可能最终使情况变得更糟。

我衷心感谢您对此事的任何投入,因为我确实处于束缚之中,不知道从何而来。

7 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:1)

在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文件。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

也许您正在打开一些使用python进程执行的文件,其中一个文件需要下载以进行安装(以我的经验,我正在打开Pycharm,并且该进程正在使用'_mysql.cp36-win_amd64.pyd'文件)< / p>

希望这对某人有帮助

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

要安装mysqlclient,您需要Visual C ++ 2015 Build Tools。使用下面的链接下载visualstudio工具。 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.Then

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

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

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

如果发现类似“ MySQLdb / _mysql.c(29)”的错误:致命错误C1083:无法打开包含文件:'mysql.h':无此类文件或目录     错误:命令'C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ BIN \ cl.exe'失败,退出状态为2”

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

http://itfundasphp.blogspot.com/2019/06/django-connect-to-mysql.html

“ 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连接! 有关更多详细信息,“ {{3}}”

答案 6 :(得分:0)

我遇到了同样的问题。 我只是下载了python-64安装程序并安装在我的计算机上,然后选择了64位作为插入器。

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

我希望这会有所帮助。