ImportError: No module named ‘MySQLdb'
安装须知:
我们使用Django、flask等来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。
常见的Mysql驱动介绍:
MySQL-python:也就是MySQLdb。是对C语言操作MySQL数据库的一个简单封装。遵循了Python DB API v2。但是只支持Python2,目前还不支持Python3。
mysqlclient:是MySQL-python的另外一个分支。支持Python3并且修复了一些bug。
pymysql:纯Python实现的一个驱动。因为是纯Python编写的,因此执行效率不如MySQL-python。并且也因为是纯Python编写的,因此可以和Python代码无缝衔接。
MySQL Connector/Python:MySQL官方推出的使用纯Python连接MySQL的驱动。因为是纯Python开发的。效率不高。
执行: pip3 install mysqlclient==1.4.6
ubuntu
报错如下:
Collecting mysqlclient==1.4.6 Using cached https://files.pythonhosted.org/packages/d0/97/7326248ac8d5049968bf4ec708a5d3d4806e412a42e74160d7f266a3e03a/mysqlclient-1.4.6.tar.gz Complete output from command python setup.py egg_info: /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 1, in <module> File "/tmp/pip-build-gxoz145c/mysqlclient/setup.py", line 16, in <module> metadata, options = get_config() File "/tmp/pip-build-gxoz145c/mysqlclient/setup_posix.py", line 61, in get_config libs = mysql_config("libs") File "/tmp/pip-build-gxoz145c/mysqlclient/setup_posix.py", line 29, in mysql_config raise EnvironmentError("%s not found" % (_mysql_config_path,)) OSError: mysql_config not found ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-gxoz145c/mysqlclient/
解决办法:
sudo apt install libmysqlclient-dev
# 下载到指定版本的python包中
sudo -H python -m pip install -U mysqlclient==1.4.6 -i https://mirrors.aliyun.com/pypi/simple/
windows
方法解析:
#MySQLdb只支持Python2.,还不支持3.可以用PyMySQL代替,也可以直接安装mysqlclient #方法1: pip install PyMySQL #然后在需要的项目中,把 init.py中添加两行: import pymysql pymysql.install_as_MySQLdb() #方法2 pip3 install mysqlclient