[Python3.10] 安装flask-mysqldb失败

发布时间 2023-03-22 21:11:02作者: enthusiastic666

【问题描述】

搭建flask环境的过程中,安装flask-mysqldb时失败

(flaskEnv) root@rak:/home/rak/enthusiastic666/flaskProject# pip install flask-mysqldb
Collecting flask-mysqldb
Using cached Flask-MySQLdb-1.0.1.tar.gz (4.3 kB)
Preparing metadata (setup.py) ... done
Requirement already satisfied: Flask>=0.12.4 in /root/.virtualenvs/flaskEnv/lib/python3.10/site-packages (from flask-mysqldb) (2.2.3)
Collecting mysqlclient>=1.3.7
Using cached mysqlclient-2.1.1.tar.gz (88 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [16 lines of output]
/bin/sh: 1: mysql_config: not found
/bin/sh: 1: mariadb_config: not found
/bin/sh: 1: mysql_config: not found
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/tmp/pip-install-274fw4lw/mysqlclient_4f7667a85b2642139132f3d67b350114/setup.py", line 15, in <module>
metadata, options = get_config()
File "/tmp/pip-install-274fw4lw/mysqlclient_4f7667a85b2642139132f3d67b350114/setup_posix.py", line 70, in get_config
libs = mysql_config("libs")
File "/tmp/pip-install-274fw4lw/mysqlclient_4f7667a85b2642139132f3d67b350114/setup_posix.py", line 31, in mysql_config
raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found
mysql_config --version
mariadb_config --version
mysql_config --libs
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

 

【解决办法】

安装两个依赖库

sudo apt-get install libmysqld-dev
sudo apt-get install libmysqlclient-dev
# 完美解决
(flaskEnv) root@rak:/home/rak/enthusiastic666/flaskProject# pip install flask-mysqldb Collecting flask-mysqldb Using cached Flask-MySQLdb-1.0.1.tar.gz (4.3 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: Flask>=0.12.4 in /root/.virtualenvs/flaskEnv/lib/python3.10/site-packages (from flask-mysqldb) (2.2.3) Collecting mysqlclient>=1.3.7 Using cached mysqlclient-2.1.1.tar.gz (88 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: Werkzeug>=2.2.2 in /root/.virtualenvs/flaskEnv/lib/python3.10/site-packages (from Flask>=0.12.4->flask-mysqldb) (2.2.3) Requirement already satisfied: Jinja2>=3.0 in /root/.virtualenvs/flaskEnv/lib/python3.10/site-packages (from Flask>=0.12.4->flask-mysqldb) (3.1.2) Requirement already satisfied: click>=8.0 in /root/.virtualenvs/flaskEnv/lib/python3.10/site-packages (from Flask>=0.12.4->flask-mysqldb) (8.1.3) Requirement already satisfied: itsdangerous>=2.0 in /root/.virtualenvs/flaskEnv/lib/python3.10/site-packages (from Flask>=0.12.4->flask-mysqldb) (2.1.2) Requirement already satisfied: MarkupSafe>=2.0 in /root/.virtualenvs/flaskEnv/lib/python3.10/site-packages (from Jinja2>=3.0->Flask>=0.12.4->flask-mysqldb) (2.1.2) Building wheels for collected packages: flask-mysqldb, mysqlclient Building wheel for flask-mysqldb (setup.py) ... done Created wheel for flask-mysqldb: filename=Flask_MySQLdb-1.0.1-py3-none-any.whl size=4675 sha256=ee30655695884633bf32da27dea22a75d82c870418da805009e6fcb5476162af Stored in directory: /root/.cache/pip/wheels/3f/7f/62/bb7b4e2a4a6324b42bc6cf1f7dc7946781dbe81f2ce1e59bee Building wheel for mysqlclient (setup.py) ... done Created wheel for mysqlclient: filename=mysqlclient-2.1.1-cp310-cp310-linux_x86_64.whl size=104309 sha256=a27df7002c065032ba4038aa44d920eda7aaa3d883b4c062922ffa6a7259def6 Stored in directory: /root/.cache/pip/wheels/7d/34/ba/a769c165b01646816afdf9bf792e847ef149693fee432b6b65 Successfully built flask-mysqldb mysqlclient Installing collected packages: mysqlclient, flask-mysqldb Successfully installed flask-mysqldb-1.0.1 mysqlclient-2.1.1