没有名为MySQLdb的模块


400

我正在使用Python 2.5.4版并安装MySQL 5.0版和Django。Django在Python上运行良好,但在MySQL上运行良好。我在Windows Vista中使用它。


43
pip install mysql-python或者pip install mysqlclient
心教堂

13
我必须安装sudo apt-get install libmysqlclient-dev才能使其正常运行。
b00r00x0

PIP安装的mysql Windows x64上10的工作,你的岩石心教堂
鼬萨玛

8
对于Python3.6 sudo apt-get install libmysqlclient-devpip3 install mysqlclient工作对我来说
Umair

Answers:


638

您需要使用以下命令之一。哪一个取决于您拥有和使用的操作系统和软件。

  1. easy_install mysql-python(混合OS)
  2. pip安装mysql-python(mix os / python 2)
  3. pip安装mysqlclient(mix os / python 3)
  4. apt-get install python-mysqldb(Linux Ubuntu,...)
  5. cd / usr / ports / databases / py-MySQLdb &&使安装干净(FreeBSD)
  6. yum安装MySQL-python(Linux Fedora,CentOS ...)

对于Windows,请参见以下答案:安装mysql-python(Windows)


1
我必须更新我的setuptools版本以使其与Mac OS上的更新版本的python匹配,然后才能使它起作用。
乔纳森·阿德尔森

4
以及如何在带有python 3的virtualenv上安装?我用过:pip安装mysql-python只能得到:ImportError:没有名为ConfigParser的模块
Iliyan Bobev 2013年

9
在Python 3中,为了符合PEP 8,ConfigParser已重命名为configparser。看来您正在安装的软件包不支持
Python3。MySQL

2
我在以下位置使用1或2时收到此错误OSX YosemiteEnvironmentError: mysql_config not found
蒙娜·贾拉勒

1
仅供参考-我在ubuntu 18上并使用python3.7。完成“ pip install mysqlclient”后,我需要执行“ sudo apt-get install libmysqlclient-dev”才能成功安装。
拉什米·辛格

143

...并且记住没有针对python3.x的MySQLdb

(我知道问题是关于python2.x的,但是谷歌对这篇文章的评价很高)


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


Urghhgwaarrbl ...我寄希望于在我的Django应用中使用python3
Don Cheadle

6
幸运的是,有很多选择,其中许多使用相同的API:Python 3和MySQL
Anthony Geoghegan

4
的mysql是MySQLdb的一个叉是3与Python效果很好
ostrokach

@JanekOlszak我不知道这一点-仅仅花了一天的时间在键盘上进行大量的诅咒和敲打-直到阅读并转换为2.7为止。猜猜是什么,一切都正常工作
3kstc

我的旅程,这个-> 这个 -> 这个。然后,我终于能够成功安装它。
达卡,

68

如果您的python版本是3.5,请执行pip install mysqlclient,其他操作对我不起作用


我不知道为什么这个答案是向下投票,但是mysqlclient是MySQLdb的项目的一个分支,我可以证实这为我工作在Windows 10
哈曼萨穆埃尔

1
在Arch Linux上为我工作
Luke Dupin

在Ubuntu 16.10,Python 3.5.2+上工作
tivadj

在Ubuntu 14.04 Python 3.4.3上工作
gpk27

适用于macOS,Python 3.6.0
Miguel Mota

48

mysqldb是未预安装或未随Django一起安装的Python模块。您可以mysqldb 在此处下载。


1
尝试安装MySQL-python-1.2.1我收到消息ImportError:没有名为setuptools的模块 尝试安装setuptools时,我得到zlib不可用 ,不是应该与python捆绑在一起吗?
Pierre de LESPINAY,

下载完模块后,您需要使用mysql_config和运行的正确路径编辑site.cfg文件python setup.py install
ntanase 2014年


25

请注意,这并未针对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伍

13
pip install PyMySQL

然后将这两行添加到您的Project / Project / init .py

import pymysql
pymysql.install_as_MySQLdb()

适用于WIN和python 3.3+


我成功使用了您的建议。唯一的更改是在import命令中:import pymysql was at type。
豪尔赫

在Windows10,Python 3.6和虚拟环境上为我工作
罗奕康

1
喜欢这个技巧。尽管我设法在没有它的情况下也可以使用它,但是必须合并一个whql二进制文件。
Ishmael

应该是正确的答案。
Jossie Calderon



8

如果pip install mysqlclient产生错误并且您使用Ubuntu,请尝试:

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient

6

我在Windows下遇到了同样的情况,并寻找了解决方案。

看到这篇文章安装mysql-python(Windows)

它指出,安装这样的pip环境是困难的,需要许多其他依赖项。

但我最终知道,如果我们使用mysqlclient的版本降至1.3.4,则不再需要该要求,请尝试:

pip install mysqlclient==1.3.4

4
  • 使用转到您的项目目录cd
  • 源/ bin /激活(如果以前没有激活过,请激活环境)。
  • 运行命令 easy_install MySQL-python

1
不起作用ModuleNotFoundError: No module named 'ConfigParser'
TomSawyer

4
pip install --user mysqlclient 

上面的对我来说就像魅力一样对我有效。我实际上是从sqlalchemy出错。环境信息:

Python:3.6,Ubuntu:16.04,conda 4.6.8


3

感谢derevo,但我认为还有另一种好方法:

  1. 下载并安装ActivePython
  2. 打开命令提示符
  3. 类型 pypm install mysql-python
  4. 阅读特定于此软件包的注释。

我认为pypm它比easy_install


似乎需要付费订阅Can't install mysql-python-1.2.3: requires Business Edition subscription
Jeremy S.

我不这么认为。我记得我已经安装了它,没有问题。
Afshin Mehrabani 2012年

为什么您认为pypm比easy_install更强大和可靠?有什么要支持的吗?任何文章/博客文章?
Sandeep Raju Prabhakar

2
我认为这将是支持/ PI的文章/博客文章,意思是,来吧,您通常使用技术性论点来支持这样的评论,而不是主张相同但也可能没有论点的其他人。但是,论点会很好;)
赫伯特

3

对于Python 3+版本

安装mysql-connector为:

pip3 install mysql-connector 

示例Python DB连接代码:

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd=""
)
print(db_connection)

输出:

> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>

这意味着数据库已正确连接。


3

我个人建议使用pymysql而不是使用真正的MySQL连接器,该连接器为您提供独立于平台的界面,可以通过安装pip

您可以这样编辑SQLAlchemy URL模式: mysql+pymysql://username:passwd@host/database


3

对于Python 3.6或更高版本sudo apt-get install libmysqlclient-dev,并pip3 install mysqlclient 不会把戏


2

如果您在Vista上运行,则可能要签出Bitnami Django堆栈。它是由Apache,Python,MySQL等组成的一站式堆栈,与Bitrock跨平台安装程序打包在一起,使上手非常容易。它可以在Windows,Mac和Linux上运行。哦,是完全免费的:)


那如果为什么它可以在Vista上运行,为什么还要说“如果您在Vista上运行”呢?这是一种误导和混淆。
安东尼

3
致安东尼:我只是觉得很有趣,因为投票最多的评论提供了针对Linux,FreeBSD和OSX的说明,但未提供海报所指定的Vista的说明
Daniel Lopez 2013年

2

我已经尝试了上面的方法,但是仍然没有名为“ MySQLdb”的模块,最后,我成功了

easy_install mysql-python

我的环境是unbuntu 14.04


成功的virtualenv / python2.7

1

在OSX上,这些命令对我有用

brew install mysql-connector-c 
pip install MySQL-python

1

如果您使用的是SQLAlchemy,并且错误位于/site-packages/sqlalchemy/dialects/mysql/mysqldb.py

from ...connectors.mysqldb import (
                        MySQLDBExecutionContext,
                        MySQLDBCompiler,
                        MySQLDBIdentifierPreparer,
                        MySQLDBConnector
                    )

因此您可能错过了mysqldb连接器,SQLAlchemy解决方法是在安装mysql-python模块后重新安装sqlalchemy 。


0

Win10 / Python27对我有用:

easy_install mysql-python

所有其他“ pip install ...”失败,并出现相关性错误


0

以上都不是通过docker image在Ubuntu 18.04全新安装上为我工作的。

以下为我解决了它:

apt-get install holland python3-mysqldb


0

在运行Catalina v10.15.2的Mac上,出现以下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

0

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

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

0

我在ubuntu(linux),对我有用的是

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

然后最后

pip install mysqlclient
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.