【问题描述】
搭建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