【问题标题】:pip install mysqlclient errorpip安装mysqlclient错误
【发布时间】:2026-01-13 17:10:01
【问题描述】:

我正在尝试使用 pip 为 python 导入 mysqlclient 库,当我使用命令时
pip install mysqlclient 它返回错误:

Collecting mysqlclient
Using cached     https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1cb31f128e6dbba70c5975c9e57896815dbb1988ad/mysqlclient-1.3.13.tar.gz
Installing collected packages: mysqlclient
Running setup.py install for mysqlclient ... error
Complete output from command c:\users\astrina\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\astrina\\AppData\\Local\\Temp\\pip-install-40l_x_f4\\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\astrina\AppData\Local\Temp\pip-record-va173t5v\install-record.txt --single-version-externally-managed --compile:
c:\users\astrina\appdata\local\programs\python\python36\lib\distutils\dist.py:261: UserWarning: Unknown distribution option: '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
running build_ext
building '_mysql' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

----------------------------------------
Command "c:\users\astrina\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, 
tokenize;__file__='C:\\Users\\astrina\\AppData\\Local\\Temp\\pip-install- 
40l_x_f4\\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\astrina\AppData\Local\Temp\pip- 
record-va173t5v\install-record.txt --single-version-externally-managed -- 
compile" failed with error code 1 in C:\Users\astrina\AppData\Local\Temp\pip- 
install-40l_x_f4\mysqlclient\

我已经安装了 Microsoft Build Tools 2015,但问题仍然存在

【问题讨论】:

  • 你需要安装指定版本,不是2015。改为Microsoft Visual C++ 14.0。
  • 完成但问题仍然存在
  • 你确定你安装的是 Build Tools 而不是 Redistributable 包吗?
  • 要为 MySQL 安装 Python DB API 驱动程序,您可以尝试 mysql-connectorPyMySQL
  • 我想我已经安装了正确的,你能给我正确的链接吗?

标签: python mysql pip build-tools


【解决方案1】:

我在 Debian 11 (Bullseyes) 上遇到了同样的问题。我通过安装以下缺少的软件包解决了这个问题:

sudo apt-get install libmariadb-dev-compat libmariadb-dev libssl-dev

然后我就可以使用 pip 安装 mysqlclient。

【讨论】:

    【解决方案2】:

    安装以下软件包,它将解决问题。

    apt-get install python3-dev default-libmysqlclient-dev build-essential
    

    【讨论】:

      【解决方案3】:

      您可能需要安装 Python 3 和 MySQL 开发头文件和库,如下所示: 对于 UBUNTU 或 Debian

      sudo apt-get install python3-dev default-libmysqlclient-dev build-essential
      

      红帽/CentOS

      sudo yum install python3-devel mysql-devel
      

      那就试试

      pip install mysqlclient
      

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,但我以非常愚蠢的方式解决了问题。我刚刚卸载了python并通过Microsoft Store安装了它。

        【讨论】:

          【解决方案5】:

          You can set ssl library path explicitly.

          LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient
          

          【讨论】:

            【解决方案6】:
            1. 安装build-essential

              sudo apt-get install build-essential

            2. 安装mysqlclient

              pip install mysqlclient

            【讨论】:

            • 这是给 Ubuntu 的 - 你能不能也发布 centos 版本
            【解决方案7】:

            对我来说,这是旧安装工具和缺少软件包的混合体

            pip install --upgrade setuptools
            
            apt install gcc libssl-dev
            

            【讨论】:

              【解决方案8】:

              最好安装 python 64 位。然后pip install mysqlclient 肯定会工作,否则您可以按照这些步骤操作steps to install using python extension packages

              【讨论】:

                【解决方案9】:

                先试试这个命令

                (正确保留空间,即 pip space install space --only-binary 空间 :all: 空间 mysqlclient)

                pip install --only-binary :all: mysqlclient 如果仍然有错误,那么试试这个...... 访问这个网站Python Extension package 并按 ctrl+F 并搜索 mysqlclient。你会发现这样的文件名.. mysqlclient‑1.4.5‑cp38‑cp38‑win_amd64.whl

                慎重选择---根据python版本 有一个步骤可以选择它。

                1. cp38 表示python 3.8 版本,cp 37 表示python 3.6 版本,所以首先检查你的python 版本是否为3.8、3.7、3.6、3.5、3.4,然后相应下载。

                2. amd64--- 在检查 python 版本的同时还要检查你的 python 是 64 位还是 32 位。然后相应地选择。如果你的 python 是 32 位的,那么选择 amd32。

                否则你会遇到问题。 然后下载文件并使用 pip 命令手动安装。 下面给出了步骤:-

                下载后打开命令提示符并转到该下载文件可用的目录(或更好地剪切该文件并粘贴到您的桌面)并键入: NOTE :- PLEASE TYPE AFTER DOWNLOAD THE FILE... This is for python 3.8 and 64-bit $ pip install mysqlclient‑1.4.5‑cp38‑cp38‑win_amd64.whl For python 3.7 and 32-bit $ pip install mysqlclient‑1.4.5‑cp37‑cp37m‑win32.whl

                【讨论】:

                  【解决方案10】:

                  试试点子install --only-binary :all: mysqlclient 为我工作

                  【讨论】:

                  • 显示“找不到满足 mysqlclient 要求的版本(来自版本:)找不到 mysqlclient 的匹配分发”
                  【解决方案11】:

                  先安装python 3.6.5,再运行

                  pip install mysqlclient==1.3.12
                  

                  【讨论】:

                    【解决方案12】:

                    尝试从 wheel 下载并安装。记下您的 python 版本并下载正确的版本。

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

                    【讨论】:

                    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
                    • @PhilippMaurer 该链接不是指向答案的链接,而只是指向下载的链接。答案是链接前的那句话。它可能不是一个很好的答案,它甚至可能不正确,我不知道,但它是一个答案和should not be flagged as not being one
                    • 我会在这里解释一下...如果您使用的是 python3.7,您应该下载 mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl 用于 32 位窗口。对于 64 位窗口,python3.5 => mysqlclient‑1.4.2‑cp35‑cp35m‑win_amd64.whl 也是如此。在这里您可以将cp 数字与python 版本进行比较。适合您的窗户类型