【问题标题】:No module named MySQLdb没有名为 MySQLdb 的模块
【发布时间】:2010-10-02 01:49:23
【问题描述】:

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

【问题讨论】:

  • pip install mysql-pythonpip install mysqlclient
  • 我必须安装 sudo apt-get install libmysqlclient-dev 才能使其工作。
  • pip install mysqlclient 在 windows x64 10 上工作,你摇滚 Cœur
  • 对于 Python3.6 sudo apt-get install libmysqlclient-devpip3 install mysqlclient 为我工作

标签: python django python-2.x


【解决方案1】:

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

  1. easy_install mysql-python(混合操作系统)
  2. pip install mysql-python(混合os/python 2)
  3. pip install mysqlclient(混合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 ...)

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

【讨论】:

  • 我必须更新我的 setuptools 版本以匹配我在 Mac OS 上更新的 python 版本,然后才能让它工作。
  • 在 virtualenv 上安装 python 3 怎么样?我使用: pip install mysql-python 只是为了得到: ImportError: No module named ConfigParser
  • 在 Python 3 中,ConfigParser 已重命名为 configparser 以符合 PEP 8。您正在安装的软件包似乎不支持 Python 3。MySQL-python 目前不支持 Python 3。
  • OSX Yosemite:EnvironmentError: mysql_config not found中使用 1 或 2 时收到此错误
  • 仅供参考 - 我在 ubuntu 18 上并使用 python3.7。完成“pip install mysqlclient”后,我需要执行“sudo apt-get install libmysqlclient-dev”才能成功安装。
【解决方案2】:

...请记住 python3.x 没有 MySQLdb

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


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

【讨论】:

  • Urghhgwaarrbl... 我希望在我的 Django 应用程序中使用 python3
  • 幸运的是,有多种替代方案,其中许多使用相同的 API:Python 3 and MySQL
  • mysqlclient 是 MySQLdb 的一个分支,可以很好地与 Python 3 配合使用。
  • @JanekOlszak 我不知道这一点——只花了大约一天的时间在键盘上咒骂和敲打——直到读到这篇文章并切换到 2.7。你猜怎么着,一切正常~
  • 我的旅程,这个 -> this -> this。然后,我终于能够成功安装它了。
【解决方案3】:

如果你的 python 版本是3.5,做一个pip install mysqlclient,其他的东西对我不起作用

【讨论】:

  • 我不知道为什么这个答案被否决了,但mysqlclient 是 MySQLdb 项目的一个分支,我可以确认这在 Windows 10 上对我有用
  • 在 Arch linux 上为我工作
  • 在 Ubuntu 16.10、Python 3.5.2+ 上工作
  • 在 Ubuntu 14.04 Python 3.4.3 上工作
  • 在 macOS、Python 3.6.0 上工作
【解决方案4】:

mysqldb 是 Python 的一个模块,它没有预装或 Django 一起提供。可以下载mysqldbhere

【讨论】:

  • 尝试安装 MySQL-python-1.2.1 我收到消息 ImportError: No module named setuptools 尝试安装 setuptools,我收到 zlib 不可用 b> 不是应该和 python 绑定的吗?
  • 下载模块后,您需要使用 mysql_config 的正确路径编辑 site.cfg 文件并运行 python setup.py install
【解决方案5】:

Ubuntu:

sudo apt-get install python-mysqldb

【讨论】:

    【解决方案6】:

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

    在 CMD 中

    pip install wheel
    pip install pymysql
    

    在 settings.py 中

    import pymysql
    pymysql.install_as_MySQLdb()
    

    它对我有用

    【讨论】:

    • "pip3 install mysqlclient" 解决python3.6/的问题
    • 我对此赞不绝口!唯一适用于 Databricks 的解决方案..
    【解决方案7】:

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

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

    然后是最后

    pip install mysqlclient
    

    【讨论】:

    • 它对我有用!
    【解决方案8】:

    对于 Windows:

    pip install mysqlclient pymysql
    

    然后:

    import pymysql
    pymysql.install_as_MySQLdb()
    

    适用于 python 3 Ubuntu

    sudo apt-get install -y python3-mysqldb
    

    【讨论】:

    • 在 Windows 10 (Python 3.6.2) 上运行“pip install mysqlclient pymysql”解决了我的问题。
    • sudo apt-get install -y python3-mysqldb 为我工作。
    【解决方案9】:
    pip install PyMySQL
    

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

    import pymysql
    pymysql.install_as_MySQLdb()
    

    适用于 WIN 和 python 3.3+

    【讨论】:

    • 我成功地使用了你的建议。唯一的变化是在导入命令中: import pymysql There was at type.
    • 在 windows10、p​​ython 3.6、虚拟环境上为我工作
    • 喜欢这个技巧。虽然我已经设法让它在没有它的情况下工作,但必须合并一个 whql 二进制文件。
    【解决方案10】:

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

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

    【讨论】:

    • 这个在 aws 上的 ubuntu 18.04 上的 python 3.6.11 上为我工作
    【解决方案11】:

    试试这个。

    pip install MySQL-python
    

    【讨论】:

    • 这如何专门应用于虚拟环境?
    【解决方案12】:

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

    pip install PyMySQL
    

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

    【讨论】:

    • 这也适用于 M1 Mac。截至 2021 年 1 月 31 日,mysql-python 客户端(尚未)无法工作。
    • 它在烧瓶上工作,但我在哪里可以找到这个的官方链接?
    【解决方案13】:

    我在windows下也遇到了同样的情况,正在寻找解决办法。

    看到这个帖子Install mysql-python (Windows)

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

    但我终于知道,如果我们使用mysqlclient 的版本降低到1.3.4,它就不再需要那个要求了,所以试试吧:

    pip install mysqlclient==1.3.4
    

    【讨论】:

      【解决方案14】:
      pip install --user mysqlclient 
      

      以上对我来说就像魅力一样。实际上我从 sqlalchemy 中得到了错误。 环境信息:

      Python:3.6,Ubuntu:16.04,conda 4.6.8

      【讨论】:

        【解决方案15】:

        我个人建议使用pymysql,而不是使用正版的MySQL连接器,它为您提供了一个独立于平台的接口,可以通过pip安装。

        您可以像这样编辑 SQLAlchemy URL 架构: mysql+pymysql://username:passwd@host/database

        【讨论】:

          【解决方案16】:

          Python 3.8

          sudo apt-get install libmysqlclient-dev
          sudo apt-get install -y python3-mysqldb
          
          pip3 install pymysql
          

          settings.py

          ​​>
          import pymysql
          pymysql.install_as_MySQLdb()
          

          【讨论】:

            【解决方案17】:
            • 使用cd 转到您的项目目录。
            • source/bin/activate(激活您的环境。如果之前没有的话)。
            • 运行命令easy_install MySQL-python

            【讨论】:

            • 不起作用ModuleNotFoundError: No module named 'ConfigParser'
            【解决方案18】:

            对于 Python 3.6+

            sudo apt-get install libmysqlclient-dev
            pip3 install mysqlclient
            

            成功了

            【讨论】:

              【解决方案19】:

              如果您在 Vista 上运行,您可能想查看 Bitnami Django stack. 它是 Apache、Python、MySQL 等的多合一堆栈,与 Bitrock 跨平台安装程序打包在一起,使其非常容易开始。它可以在 Windows、Mac 和 Linux 上运行。哦,而且是完全免费的 :)

              【讨论】:

              • 那你为什么说“如果你在 Vista 上运行”,如果它可以在比 Vista 上运行的更多?这是误导和混淆。
              • 致 Anthony:我只是觉得有趣的是,票数最高的评论提供了针对 Linux、FreeBSD 和 OSX 的说明,但没有针对海报指定的 Vista 提供说明
              【解决方案20】:

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

              1. 下载安装ActivePython
              2. 打开命令提示符
              3. 输入pypm install mysql-python
              4. 阅读此软件包的特定说明。

              我认为pypmeasy_install 更强大更可靠。

              【讨论】:

              • 好像需要付费订阅Can't install mysql-python-1.2.3: requires Business Edition subscription
              • 我不这么认为。我记得我已经安装了,没有问题。
              • 为什么你认为pypm比easy_install更强大更可靠?有什么可以支持的吗?有任何文章/博文吗?
              • 我认为这将是支持以下观点的文章/博客文章:PI 的意思是,来吧,你支持这样的评论,通常是技术论据,而不是其他声称相同的人,但也可能没有论据。但是,争论会很好;)
              【解决方案21】:

              适用于 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>
              

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

              【讨论】:

              • 原始问题清楚地说明了错误消息,即“没有名为 MySQLdb 的模块”。您的解决方案给出了完全相同的错误。因此,您的解决方案是错误的。
              • 连接正确,不报错。请再次检查。
              • 请阅读原始问题和我写的内容。我从未提到过连接,最初的问题与连接无关。关于 ModuleNotFoundError。
              【解决方案22】:

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

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

              【讨论】:

                【解决方案23】:

                Python 3

                确保导入顺序:

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

                【讨论】:

                  【解决方案24】:

                  上面的方法我都试过了,还是没有名为'MySQLdb'的模块,终于成功了

                  easy_install mysql-python
                  

                  我的环境是 unbuntu 14.04

                  【讨论】:

                  • virtualenv/python2.7成功
                  【解决方案25】:

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

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

                  【讨论】:

                    【解决方案26】:

                    如果你正在使用 SQLAlchemy 并且错误在 /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

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

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

                    【讨论】:

                      【解决方案27】:

                      在通过 docker 映像全新安装的 Ubuntu 18.04 上,以上方法均不适用于我。

                      以下为我解决了它:

                      apt-get install holland python3-mysqldb

                      【讨论】:

                        【解决方案28】:

                        在我运行 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
                        

                        【讨论】:

                          【解决方案29】:

                          在 mac 上使用 mysql.connector.python 版本 8.0.24 时遇到了这个问题(如果代码库相同,那么问题也应该发生在 windows 中)。第 51 行的This file 导入“从 django.db.backends.mysql.base 导入 DatabaseWrapper 作为 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

                          【讨论】:

                            【解决方案30】:

                            Win10 / Python27 这对我有用:

                            easy_install mysql-python
                            

                            所有其他 'pip install...' 因依赖错误而失败

                            【讨论】:

                              猜你喜欢
                              • 2014-04-10
                              • 2015-08-22
                              • 2017-01-27
                              • 2014-11-12
                              • 2017-04-22
                              • 2013-02-25
                              • 2012-09-28
                              • 2018-07-15
                              相关资源
                              最近更新 更多