【问题标题】:How to install Python MySQLdb module using pip?如何使用 pip 安装 Python MySQLdb 模块?
【发布时间】:2014-11-09 23:54:45
【问题描述】:

如何使用 pip 为 Python 安装 MySQLdb 模块?

【问题讨论】:

  • 如果你希望将它与 Python3 一起使用(例如,使用最新版本的 Django),你将需要 mysqlclient,因为 MysqlDB 不支持 python3。见This Question
  • 我正在使用带有 Python 2.7 和 MariaDB 的 mysqlclient,到目前为止没有任何问题。

标签: python mysql pip


【解决方案1】:

这很容易做到,但很难记住正确的拼写:

pip install mysqlclient

如果您需要 1.2.x 版本(仅限旧版 Python),请使用 pip install MySQL-python

注意:运行上述命令时,可能必须存在一些依赖项。关于如何在各种平台上安装这些的一些提示:

Ubuntu 14、Ubuntu 16、Debian 8.6(杰西)

sudo apt-get install python-pip python-dev libmysqlclient-dev

Fedora 24:

sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc

Mac 操作系统

brew install mysql-connector-c

如果失败,请尝试

brew install mysql

【讨论】:

  • 你不必记住全名,你可以使用pip search mysql在输出中找到你需要的。
  • @WKPlus:对……但我做了pip search mysqldb 并没有找到它。因此,我 +1 这个答案。
  • @WKPlus 实际上在对 mysql 进行 pip 搜索后找到正确的选择非常麻烦
  • 我每次都得用谷歌搜索,真是太气人了
  • @DavidOkwii 如果您不在 virtualenv 中,则需要 sudo。那可能是你的问题。
【解决方案2】:

我也遇到了同样的问题。如果您使用的是 Windows,请按照以下步骤操作。 去: 1.我的电脑 2.系统属性 3.高级系统设置 4. 在“高级”选项卡下,单击“环境变量”按钮 5. 然后在系统变量下,您必须添加/更改以下变量:PYTHONPATH 和路径。这是我的变量的样子: 蟒蛇路径:

C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

路径:

C:\Program Files\MySQL\MySQL Utilities 1.3.5\;C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

请参阅此 link 以供参考

【讨论】:

    【解决方案3】:

    从全新的 Ubuntu 14.04.2 系统开始,需要这两个命令:

     apt-get install python-dev libmysqlclient-dev
     pip install MySQL-python
    

    仅仅进行“pip install”是行不通的。

    来自http://codeinthehole.com/writing/how-to-set-up-mysql-for-python-on-ubuntu/

    【讨论】:

    • 这个工作,由于某种原因,简单的 pip 安装在 ubuntu 上无法正常工作
    • 在 ubuntu 14.04 中,会报错“raise EnvironmentError("%s not found" % (mysql_config.path,)",第一个 cmd 解决了这个问题,谢谢,节省我一些时间
    • 修复error: command 'x86_64-linux-gnu-gcc' failed with exit status 1使用sudo apt-get install build-essential
    • 我想知道为什么需要这样做。我想到一件事。我通过仅安装而不是构建来测试这一点。您是否构建了您安装的任何东西,而不仅仅是安装它们?
    • 对于 Ubuntu,这当然应该被接受。
    【解决方案4】:

    我通过 Pip 在 Windows 上安装 64 位版本的 MySQLdb 时遇到问题(编译源问题)[32 位版本安装正常]。设法从http://www.lfd.uci.edu/~gohlke/pythonlibs/ 提供的 .whl 文件中安装已编译的 MySQLdb

    然后可以通过 pip 将 .whl 文件安装为 https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels 中的文档

    例如,如果您保存在C:/ 中,您可以通过以下方式安装

    pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl

    跟进:如果您安装了 64 位版本的 Python,那么您想从上面的链接中安装 64 位 AMD 版本的 MySQLdb [i.e.即使您有英特尔处理器]。如果您尝试安装 32 位版本,我认为您会在下面的 cmets 中看到不支持的轮子错误。

    【讨论】:

    • 完全失败。不支持的轮子
    • 我需要 MySQL 客户端。 pip install mysqlclient-1.3.7-cp27-none-win_amd64.whl 工作得很好。
    • http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python下载whl文件(我dl'd 64位匹配我的64位Python安装)。将文件保存到c:/ 目录并运行pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl 它安装在几秒钟内,很高兴。太容易了!
    • 也为我工作,因为 pip install by name 失败了。
    【解决方案5】:

    如果您使用的是 Raspberry Pi [Raspbian OS]

    首先需要安装pip命令

    apt-get install python-pip
    

    这样就可以按顺序安装了

    apt-get install python-dev libmysqlclient-dev
    
    apt-get install python-pip
    
    pip install MySQL-python
    

    【讨论】:

    • 问题中没有提到树莓
    【解决方案6】:

    我尝试了所有选项,但无法使其在 Redhat 平台上运行。 我做了以下工作:-

    yum install MySQL-python -y
    

    一旦安装了包,就可以在解释器中导入如下模块:-

    >>> import MySQLdb
    >>> 
    

    【讨论】:

    • 这个问题特别提到了pip。您使用的是什么发行版?在 Fedora 24 上,这可以通过 pip 安装模块:sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc, sudo pip install MySQL-python
    • 我知道这个问题是通过 pip 解决的,但我个人无法通过使用 pip 来解决它。因此,我只是分享了我的解决方法,它为我解决了这个问题。我正在使用centos 6.8。 pip list 没有显示与 mysql 相关的任何内容,当我执行“pip install MySQL-python”时,它抛出了一个错误。现在有趣的是,我发现一旦我们通过 yum i:e "yum install MySQL-python" 安装,我就可以导入 MySQLdb。同样,一旦完成 yum 安装,我就可以通过 pip 安装而没有任何错误。
    【解决方案7】:

    你可以到这个website去下载包。

    【讨论】:

      【解决方案8】:

      上面的回答很好,但是我们在Windows中使用pip安装MySQL-python时可能会出现一些问题

      例如,它需要一些与Visual Stdio相关的文件。一个解决方案是安装VS2008或2010……显然,它的成本太高了。

      另一种方式是@bob90937 的答案。我是来做点补充的。

      使用http://www.lfd.uci.edu/~gohlke/pythonlibs,您可以下载许多科学开源扩展包的许多 Windows 二进制文件,用于 Python 编程语言的官方 CPython 发行版。

      回到正题,我们可以选择MySQL-python(py2)Mysqlclient(py3)并使用pip install 进行安装。它给我们带来了极大的便利!

      【讨论】:

        【解决方案9】:

        这对我有用:

        pip install mysqlclient
        

        这适用于 python 3.x

        【讨论】:

        【解决方案10】:

        对于 Python3,我需要这样做:

        python3 -m pip install MySQL
        

        【讨论】:

          【解决方案11】:

          第一个

          pip install pymysql
          

          然后将下面的代码放入__init__.py(projectname/__init__.py)

          import pymysql
          pymysql.install_as_MySQLdb()
          

          我的环境是(python3.5,django1.10),这个解决方案适合我!

          希望这会有所帮助!

          【讨论】:

          • 哇,我已经花费了 5 多个小时试图解决这个问题,但没有成功。这是唯一适用于 Ubuntu 16.04/python 3.5/Django 1.11 的解决方案。感谢分享。
          • 这对我不起作用,我的环境是 python 3.7 和 django 2.2。请帮帮我。
          • 这应该在上面。我已经浏览了几个小时的解决方案。我有一个运行 django 1.6 的带有 python 2.7 的 virtualenv。我无法安装 MySQL-python 或 mysqlclient。无论我尝试什么,我都会收到“致命错误:mysql.h”。这个成功了。
          【解决方案12】:

          如果 pip3 不起作用,您可以尝试:

          sudo apt install python3-mysqldb
          

          【讨论】:

          • 不是很好的答案。你假设 Python 版本是 3,操作系统是 Debian/Ubuntu,但你不知道。请等待作者添加更多详细信息。
          【解决方案13】:

          转到pycharm然后转到默认设置--> pip(双击)--pymsqldb..-->安装--在这样的程序中安装使用后

          import pymysql as MySQLdb
          
          # Open database connection
          db = MySQLdb.connect("localhost","root","root","test" )
          
          # prepare a cursor object using cursor() method
          cursor = db.cursor()
          
          # execute SQL query using execute() method.
          cursor.execute("show tables")
          
          # Fetch a single row using fetchone() method.
          data = cursor.fetchall()
          print (data)
          
          # disconnect from server
          db.close()
          

          【讨论】:

          • 所以对我来说 MySQLdb 无法正常工作,因为虚拟环境引用了不正确的库。使用import pymysql as MySQLdb 解决了这个问题。
          【解决方案14】:

          pip install mysql-connector-python 如文档中所述:

          https://dev.mysql.com/doc/connector-python/en/connector-python-installation-binary.html

          【讨论】:

            【解决方案15】:

            如果你无法安装mysqlclient你也可以安装pymysql

            pip install pymysql

            这与 MySqldb 的工作方式相同。之后全部使用 pymysql 而不是 MySQLdb

            【讨论】:

            • 这应该是答案。
            【解决方案16】:

            在 RHEL 7 上:

            sudo yum install yum-utils mariadb-devel python-pip python-devel gcc

            sudo /bin/pip2 install MySQL-python

            【讨论】:

              【解决方案17】:

              如果您的系统上安装了 Windows,则在 cmd 上键入以下命令:

              pip install mysql-connector
              

              如果上述命令不起作用,请尝试使用:

              pip install mysql-connector-python
              

              现在,如果上述命令没有完成工作,请尝试使用:

              pip install mysql-connector-python-rf
              

              就是这样,你现在可以走了。

              【讨论】:

                【解决方案18】:

                我的环境是:

                • Windows 10 专业版,
                • Python 3.7 (python-3.7.1-amd64.exe),
                • MySQL 8.0 (mysql-installer-web-community-8.0.13.0.msi)

                pip install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

                为我工作。

                import MySQLdb, sys
                
                
                # --------------------------------------------------
                # Connect to MySQL
                # --------------------------------------------------
                try:
                    db = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database", charset='cp1251')
                except MySQLdb.Error as e:
                    print ("Error %d: %s" % (e.args[0], e.args[1]))
                    sys.exit()
                
                # Creating cursor 
                cursor = db.cursor()
                

                【讨论】:

                  【解决方案19】:

                  实际上,按照@Nick T 的回答对我不起作用,我尝试apt-get install python-mysqldb 为我工作

                  root@2fb0da64a933:/home/test_scrapy# apt-get install python-mysqldb
                  Reading package lists... Done
                  Building dependency tree       
                  Reading state information... Done
                  The following additional packages will be installed:
                    libmariadbclient18 mysql-common
                  Suggested packages:
                    default-mysql-server | virtual-mysql-server python-egenix-mxdatetime python-mysqldb-dbg
                  The following NEW packages will be installed:
                    libmariadbclient18 mysql-common python-mysqldb
                  0 upgraded, 3 newly installed, 0 to remove and 29 not upgraded.
                  Need to get 843 kB of archives.
                  After this operation, 4611 kB of additional disk space will be used.
                  Do you want to continue? [Y/n] y
                  Get:1 http://deb.debian.org/debian stretch/main amd64 mysql-common all 5.8+1.0.2 [5608 B]
                  Get:2 http://deb.debian.org/debian stretch/main amd64 libmariadbclient18 amd64 10.1.38-0+deb9u1 [785 kB]
                  Get:3 http://deb.debian.org/debian stretch/main amd64 python-mysqldb amd64 1.3.7-1.1 [52.1 kB]                    
                  Fetched 843 kB in 23s (35.8 kB/s)                                                                                 
                  debconf: delaying package configuration, since apt-utils is not installed
                  Selecting previously unselected package mysql-common.
                  (Reading database ... 13223 files and directories currently installed.)
                  Preparing to unpack .../mysql-common_5.8+1.0.2_all.deb ...
                  Unpacking mysql-common (5.8+1.0.2) ...
                  Selecting previously unselected package libmariadbclient18:amd64.
                  Preparing to unpack .../libmariadbclient18_10.1.38-0+deb9u1_amd64.deb ...
                  Unpacking libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
                  Selecting previously unselected package python-mysqldb.
                  Preparing to unpack .../python-mysqldb_1.3.7-1.1_amd64.deb ...
                  Unpacking python-mysqldb (1.3.7-1.1) ...
                  Setting up mysql-common (5.8+1.0.2) ...
                  update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
                  Setting up libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
                  Processing triggers for libc-bin (2.24-11+deb9u3) ...
                  Setting up python-mysqldb (1.3.7-1.1) ...
                  root@2fb0da64a933:/home/test_scrapy# python 
                  Python 2.7.13 (default, Nov 24 2017, 17:33:09) 
                  [GCC 6.3.0 20170516] on linux2
                  Type "help", "copyright", "credits" or "license" for more information.
                  >>> import MySQLdb
                  >>> 
                  

                  【讨论】:

                    【解决方案20】:

                    这里给出的许多答案都非常令人困惑,所以我会尽量简单地说。它帮助我安装了这个

                    pip install pymysql
                    

                    然后在python文件中使用如下命令

                    import pymysql as MySQLdb
                    

                    这样你就可以毫无问题地使用 MySQLdb。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-04-27
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-06-04
                      相关资源
                      最近更新 更多