【问题标题】: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使用 Python 3.6.5 安装 MySQLdb 时出现问题:无法打开“mysql.h” - 并且无法打开:“config-win.h”:没有这样的文件或目录
【发布时间】:2018-12-09 15:58:39
【问题描述】:

我正在尝试将 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 的位置,所以我需要自定义它的路径,但我没有技术深度来干预它,因为我担心我最终可能会变得更糟。

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

【问题讨论】:

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

标签: python mysql mamp mysql-python


【解决方案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 在这里不起作用。

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

            【解决方案8】:

            pip install mysqlclient 对我不起作用

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

            【讨论】:

              猜你喜欢
              • 2010-12-30
              • 1970-01-01
              • 1970-01-01
              • 2015-01-08
              • 2018-08-18
              • 2019-08-07
              • 2018-01-20
              • 2019-08-27
              相关资源
              最近更新 更多