没有名为MySQLdb的模块

时间:2009-01-18 09:13:38

标签: python django python-2.x

我正在使用Python 2.5.4版并安装MySQL 5.0和Django。 Django可以正常使用Python,但不适用于MySQL。我在Windows Vista中使用它。

30 个答案:

答案 0 :(得分:561)

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

  1. easy_install mysql-python (mix os)
  2. pip install mysql-python (mix os / python 2)
  3. pip install mysqlclient (mix os / 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 ...)
  7. 对于Windows,请参阅以下答案:Install mysql-python (Windows)

答案 1 :(得分:121)

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

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


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

答案 2 :(得分:55)

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

答案 3 :(得分:45)

mysqldb是Python的一个模块,它没有预装或使用Django。您可以下载mysqldb here

答案 4 :(得分:33)

Ubuntu:

sudo apt-get install python-mysqldb

答案 5 :(得分:18)

请注意,这不是针对python 3.x

进行测试的

在CMD中

pip install wheel
pip install pymysql
在settings.py

import pymysql
pymysql.install_as_MySQLdb()

它与我合作

答案 6 :(得分:11)

试试这个。

pip install MySQL-python

答案 7 :(得分:9)

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

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

然后最后

pip install mysqlclient

答案 8 :(得分:8)

pip install PyMySQL

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

import pymysql
pymysql.install_as_MySQLdb()

适用于WIN和python 3.3 +

答案 9 :(得分:7)

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

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

答案 10 :(得分:6)

对于窗口:

pip install mysqlclient pymysql

然后:

导入pymysql pymysql.install_as_MySQLdb()

对于python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

答案 11 :(得分:5)

我在windows下遇到了同样的情况,并搜索了解决方案。

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

它指出安装这样一个pip环境很困难,需要很多其他的依赖。

但我终于知道,如果我们将mysqlclient的版本降至1.3.4,则不再需要这些要求,请尝试:

pip install mysqlclient==1.3.4

答案 12 :(得分:4)

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

答案 13 :(得分:4)

对于试图为 sqlalchemy 寻找解决方案时访问此页面的任何人,您需要做的就是:

pip install PyMySQL

并调整您的连接字符串以使用 PyMySQL,从 mysql://mysql+pymysql://

答案 14 :(得分:3)

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

  1. 下载并安装ActivePython
  2. 打开命令提示符
  3. 输入pypm install mysql-python
  4. 阅读特定于此包装的说明。
  5. 我认为pypmeasy_install更强大,更可靠。

答案 15 :(得分:2)

如果您在Vista上运行,您可能需要查看Bitnami Django stack.这是一个包含Bitrock跨平台安装程序的Apache,Python,MySQL等一体化堆栈让它真的很容易上手。它可以在Windows,Mac和Linux上运行。哦,完全免费:)

答案 16 :(得分:2)

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

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

答案 17 :(得分:2)

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

easy_install mysql-python

我的环境是unbuntu 14.04

答案 18 :(得分:1)

pip install --user mysqlclient 
上面的

对我来说就像对我来说很有吸引力。我实际上是从sqlalchemy中出错的。 环境信息:

Python:3.6,Ubuntu:16.04,conda 4.6.8

答案 19 :(得分:1)

我个人建议使用pymysql而不是使用真正的MySQL连接器,后者为您提供了平台无关的界面,可以通过pip安装。

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

答案 20 :(得分:1)

对于Python 3.6+ sudo apt-get install libmysqlclient-devpip3 install mysqlclient可以达到目的

答案 21 :(得分:1)

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

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

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

答案 22 :(得分:1)

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

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

答案 23 :(得分:1)

Python 3

确保导入顺序:

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

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

答案 24 :(得分:0)

Win10 / Python27 这对我有用:

easy_install mysql-python

所有其他“ pip安装...”均因相关性错误而失败

答案 25 :(得分:0)

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

以下为我解决了它:

apt-get install holland python3-mysqldb

答案 26 :(得分: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

答案 27 :(得分:0)

在 mac 上使用 mysql.connector.python 版本 8.0.24 遇到了这个问题(如果代码库相同,那么问题也应该发生在 Windows 中)。第 51 行的 This file 导入“from django.db.backends.mysql.base import DatabaseWrapper as MySQLDatabaseWrapper”。 imported file 具有以下代码 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

答案 28 :(得分:0)

Python 3.8

sudo apt-get install libmysqlclient-dev
sudo apt-get install -y python3-mysqldb
pip3 install pymysql
import pymysql
pymysql.install_as_MySQLdb()

答案 29 :(得分:-1)

对于 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>

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