pip安装mysqlclient报错

pip install mysqlclient error

我正在尝试使用 pip 为 python 导入 mysqlclient 库,当我使用命令
pip install mysqlclient它return一个错误:

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,但问题仍然存在

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

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

先安装python 3.6.5,然后运行

pip install mysqlclient==1.3.12

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

首先尝试这个命令

(keep space properly ie, pip space install space --only-binary space :all: space 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 位。然后 select 相应地。如果你的 python 是 32 位的那么 select 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

最好安装 python 64 位。然后 pip install mysqlclient 就可以了,否则你可以按照这些步骤

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

pip install --upgrade setuptools

apt install gcc libssl-dev
  1. 安装build-essential

    sudo apt-get install build-essential

  2. 安装mysqlclient

    pip install mysqlclient

You can set ssl library path explicitly.

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

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

您可能需要像这样安装 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

安装以下软件包即可解决问题。

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

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

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

然后我可以用 pip 安装 mysqlclient。

我在 MacOs Catalina 上看到了一个类似的问题,解决了这个问题:

ARCHFLAGS="-arch x86_64" pip3 install mysqlclient