没有名为MySQLdb的模块。

526

我正在使用 Python 版本 2.5.4,并安装了 MySQL 版本 5.0 和 Django。Django 在 Python 中运行良好,但在 MySQL 中出现问题。我的操作系统是 Windows Vista。


74
pip install mysql-python 或者 pip install mysqlclient:这是安装 Python 连接 MySQL 数据库的模块,可以使用其中任意一个指令进行安装。 - Cœur
17
为了让它工作,我不得不安装 sudo apt-get install libmysqlclient-dev - b00r00x0
2
pip install mysqlclient 在 Windows x64 10 上运行成功,你太棒了 Cœur。 - Itachi Sama
19
对于Python3.6来说,sudo apt-get install libmysqlclient-devpip3 install mysqlclient对我很有用。 - Umair Ayub
1
我的开发环境是基于Windows的,所以我运行了 pip install mysqlclient 命令,它成功安装了。 - codingbruh
33个回答

745

您需要使用以下命令之一,具体取决于您的操作系统和软件:

  1. easy_install mysql-python (任意操作系统)
  2. pip install mysql-python (任意操作系统/ Python 2)
  3. pip install mysqlclient (任意操作系统/ Python 3)
  4. apt-get install python-mysqldb (Linux Ubuntu, ...)
  5. cd /usr/ports/databases/py-MySQLdb && make install clean (FreeBSD)
  6. yum install MySQL-python (Linux Fedora, CentOS ...)

对于Windows,请参阅此答案:Install mysql-python (Windows)


4
在虚拟环境中安装Python 3,那该怎么办呢?我使用了以下命令: pip install mysql-python 但是出现了以下错误信息: ImportError: No module named ConfigParser。 - Iliyan Bobev
11
在Python 3中,ConfigParser已被重命名为configparser以符合PEP 8规范。看起来你正在安装的包不支持Python 3。MySQL-Python目前不支持Python 3。 - derevo
1
请参考以下Python3的选项:https://dev59.com/7W445IYBdhLWcg3wQn8j#25724855 - Symmetric
7
在使用OSX Yosemite时,当输入1或2时,我会收到以下错误提示:EnvironmentError: mysql_config not found - Mona Jalal
3
FYI - 我正在使用 Ubuntu 18,并且使用 Python3.7。在执行 "pip install mysqlclient" 后,我需要执行 "sudo apt-get install libmysqlclient-dev" 才能成功安装。 - Rashmi Singh
显示剩余6条评论

176

请记住,Python3.x不支持MySQLdb

(我知道该问题是关于Python2.x的,但谷歌评级很高)


编辑:如评论中所述,有一个MySQLdb的分支支持Python 3:github.com/PyMySQL/mysqlclient-python


唉,我的希望使用Python3在Django应用程序中被打破了。 - Don Cheadle
7
幸运的是,有一系列的替代方案,其中许多使用相同的API:Python 3 和 MySQL - Anthony Geoghegan
4
mysqlclient是MySQLdb的一个分支,能够很好地与Python 3配合使用。 - ostrokach
@JanekOlszak 我之前不知道这个 - 只花了一天时间狂骂键盘 - 直到读到这篇文章并切换到2.7版本。然后,你猜怎么着,一切都运行得很好~ - 3kstc
我的旅程,从这里 -> this -> this。然后,我终于成功地安装了它。 - olfek
安装mysql开发文件:sudo apt-get install libmysqlclient-dev,然后执行:pip install mysqlclient - Melroy van den Berg

98
如果您的Python版本小于3.5,请执行pip install mysqlclient来安装MySQL客户端,其他方法对我而言都无效。

我不知道为什么这个答案被踩了,但是 mysqlclient 是 MySQLdb 项目的一个分支,我可以确认在 Windows 10 上这个方法对我有效。 - Hamman Samuel
1
在我的 Arch Linux 上运行良好。 - Luke Dupin
工作环境为Ubuntu 16.10,使用Python 3.5.2+版本。 - user63289
在Ubuntu 14.04上使用Python 3.4.3工作。 - gpk27
在Ubuntu 18.04上使用Python 3.6.7工作。 - Tri
显示剩余7条评论

49

mysqldb 是 Python 的一个模块,不预装也不随 Django 一起提供。你可以在 这里 下载 mysqldb


1
尝试安装MySQL-python-1.2.1我收到了消息ImportError: No module named setuptools尝试安装setuptools,我得到了zlib not available它不应该与python捆绑在一起吗? - Pierre de LESPINAY
下载模块后,您需要使用正确的mysql_config路径编辑site.cfg文件,然后运行python setup.py install - ntanase

38

请注意,这未经过 Python 3.x 的测试

在 CMD 中执行

pip install wheel
pip install pymysql

在settings.py文件中

import pymysql
pymysql.install_as_MySQLdb()

它对我起作用了


3
"pip3 install mysqlclient" 解决了 Python3.6 版本的问题。 - showmyroutes
我无法为此点赞足够!这是在Databricks上唯一可行的解决方案。 - Foxan Ng
1
这段代码 pymysql.install_as_MySQLdb() 救了我一命。谢谢! - Anderson Contreira
1
谢谢!对我有用。不需要安装wheel。 - MRUNAL MUNOT

36

我正在使用Ubuntu(Linux),对我有效的方法是:

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

最后

pip install mysqlclient

它适用于我! - Robson Sampaio

35

如果您来到这个页面是为了寻找 sqlalchemy 的解决方案,您只需执行以下步骤:

pip install PyMySQL

将连接字符串从 mysql:// 调整为使用 PyMySQL 的 mysql+pymysql://


这也适用于M1 Macs。截至2021年1月31日,mysql-python客户端尚未工作。 - JasonD
它在Flask上运行正常,但我在哪里可以找到官方链接? - Krishnadas PC
运行得非常顺利 - Spiff Jekey-Green
太棒了,非常感谢! - Exp

34

Ubuntu:

sudo apt-get install python-mysqldb

23

适用于Windows:

pip install mysqlclient pymysql

那么:

import pymysql
pymysql.install_as_MySQLdb()

适用于Ubuntu的Python3

sudo apt-get install -y python3-mysqldb

在Windows 10上(Python 3.6.2),只需运行“pip install mysqlclient pymysql”即可解决我的问题。 - Rick Sarvas
sudo apt-get install -y python3-mysqldb 对我有用。 - user14761470

20
pip install PyMySQL

然后将以下两行添加到您的 Project/Project/init.py 文件中。

import pymysql
pymysql.install_as_MySQLdb()

适用于WIN以及Python 3.3或更高版本。


我成功地使用了你的建议。唯一的更改是在导入命令中:import pymysql。有一个打字错误。 - Jorge
在Windows10、Python 3.6和虚拟环境中对我有效。 - Yikang Luo
1
喜欢这个技巧。虽然我已经设法让它在没有它的情况下工作,但不得不加入一个 WHQL 二进制文件。 - Ishmael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接