我使用的是Python 2.5.4版本,安装MySQL 5.0版本和Django。Django和Python配合得很好,但MySQL不行。我在Windows Vista中使用它。


当前回答

在Debian Buster上,以下解决方案适用于我使用python 3.7:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient

其他回答

Python 3

确定进口顺序:

#BAD
import MySQLdb             # <------ NOT here
import pymysql
pymysql.install_as_MySQLdb()

#GOOD
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb              # <------- HERE!

在我的mac上运行Catalina v10.15.2,我有以下MySQLdb版本冲突:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

为了解决这个问题,我做了以下事情:

pip uninstall MySQL-python
pip install MySQL-python

使用cd转到您的项目目录。 Source /bin/activate(激活你的环境)如果之前没有的话)。 执行命令easy_install MySQL-python

...记住python3.x没有MySQLdb

(我知道问题是关于python2的。X但是谷歌对这篇文章的评价相当高)


编辑:正如评论中所述,MySQLdb的分支增加了对Python 3的支持:github.com/PyMySQL/mysqlclient-python

在mac上的mysql.connector.python 8.0.24版本中遇到过这个问题(如果代码基相同,那么在windows中也应该会出现这个问题)。这个文件在51行导入了“from django.db.backends.mysql.base import DatabaseWrapper as MySQLDatabaseWrapper”。导入的文件具有以下代码14-20(您收到的确切代码和错误是代码的一部分

try:
    import MySQLdb as Database
except ImportError as err:
    raise ImproperlyConfigured(
        'Error loading MySQLdb module.\n'
        'Did you install mysqlclient?'
    ) from err

误差在这里形成。不知道为什么这个导入会在不同版本的mysql连接器中返回,但8.0.23没有导入,所以我恢复到那个版本,错误消失了…这是在你希望继续使用mysql.connector.python的情况下