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


310

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


11
如果您想在Python3中使用它(例如,最新版本的Django),则需要mysqlclient,因为MysqlDB不支持python3。看到这个问题
TD Smith

到目前为止,我正在将mysqlclient与Python 2.7和MariaDB结合使用。
戴夫·埃弗里特

Answers:


522

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

pip install mysqlclient

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

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

Ubuntu 14,Ubuntu 16,Debian 8.6(jessie)

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

Fedora 24:

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

苹果系统

brew install mysql-connector-c

如果失败,请尝试

brew install mysql

26
您不必记住全名,可以使用pip search mysql并在输出中找到所需的名称。
WKPlus 2014年

12
@WKPlus:对...但是我pip search mysqldb找到了,却没有找到。因此,我对此答案+1。
Dan H

7
@WKPlus实际上,在通过点子搜索mysql之后找到正确的选择几乎是一个真正的麻烦
kommradHomer 2015年

9
我每次都这个谷歌,让该死的infurating
sleepycal

3
@DavidOkwii如果您不在virtualenv中,则需要sudo。那可能是您的问题。
玛丽安,2015年

138

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

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

仅仅进行“ pip安装”是行不通的。

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


2
这个工作了,由于某种原因,简单的pip安装无法在ubuntu上正常工作
Dap

在ubuntu 14.04中,将出现错误“ raise EnvironmentError(“%s not found”“%(mysql_config.path,)”,并且第一个cmd解决了该问题,谢谢,为我节省了一些时间
zhihong

解决error: command 'x86_64-linux-gnu-gcc' failed with exit status 1使用问题sudo apt-get install build-essential
FelikZ 2015年

我不知道为什么需要这样做。我发生了一件事。我通过仅安装而非构建进行了测试。您是否构建了所安装的所有东西,而不仅仅是安装了它们?
雷·基迪

对于Ubuntu,这当然是可以接受的答案。
Roon13 2015年

23

第一

pip install pymysql

然后将下面的代码放入__init__.pyprojectname/__init__.py

import pymysql
pymysql.install_as_MySQLdb()

我的环境是(python3.5,django1.10),此解决方案对我有用!

希望这可以帮助!!


3
哇,我已经花了5个多小时试图解决此问题,但没有成功。这是在Ubuntu 16.04 / python 3.5 / Django 1.11上可用的唯一解决方案。感谢您分享。
Paullo

这对我不起作用,我的环境是python 3.7和django 2.2。请帮帮我。
Rajen K Bhagat

这应该在那里。我已经浏览了数小时的解决方案。我有一个运行django 1.6的python 2.7的virtualenv。我无法安装MySQL-python或mysqlclient。无论我尝试了什么,我都会遇到“严重错误:mysql.h”。这是一招。
rolandsaven '19

22

我在通过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 [即,即使您具有Intel处理器]。如果您改为尝试安装32位版本,我认为您会在下面的注释中得到不受支持的滚轮错误。


总失败。不支持的车轮
M Hornbacher

3
我需要MySQL客户端。pip install mysqlclient-1.3.7-cp27-none-win_amd64.whl工作很棒。
arsenik '16

2
转到http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python下载whl文件(我将64位dl匹配我的64位Python安装)。将文件保存到c:/目录中并运行pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl它可以在几秒钟内安装好,很方便。太容易了!
curtisp

也为我工作,因为按名称安装pip失败。
Artem Russakovskii


7

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

yum install MySQL-python -y

安装软件包后,便可以按照解释器中的说明导入模块:-

>>> import MySQLdb
>>> 

这个问题具体提到pip。您正在使用什么发行版?在Fedora 24,该工程安装模块通过PIP: sudo dnf install python python-devel mysql-devel redhat-rpm-config gccsudo pip install MySQL-python
玛丽安

我知道问题是通过pip来实现的,但我个人无法使用pip来解决。因此,我只是分享了我的解决方法,它为我解决了这个问题。我正在使用centos 6.8。点列表没有显示与mysql相关的任何内容,当我“点安装MySQL-python”时,它抛出了错误。现在有趣的是,我发现一旦我们通过yum安装了i:e“ yum install MySQL-python”,我就能导入MySQLdb。同样,在完成yum安装后,我可以通过pip进行安装,而不会出现任何错误。
阿什温(Ashwin)2013年

6

转到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()




2

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

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

看到这个 链接以供参考


1

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

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

另一种方法是@ bob90937的答案。我在这里要做一些补充。

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

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




1

在RHEL 7上:

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

sudo /bin/pip2 install MySQL-python


1

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

pip install mysql-connector

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

pip install mysql-connector-python

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

pip install mysql-connector-python-rf

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


1

这里给出的许多答案都相当令人困惑,因此我将尝试简单地说一下。它帮助我安装了这个

pip install pymysql

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

import pymysql as MySQLdb

这样,您可以毫无问题地使用MySQLdb。


0

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

sudo apt install python3-mysqldb

不是很好的答案。您假设Python版本是3,操作系统是Debian / Ubuntu,但您不知道。请等到作者添加更多详细信息。
博士

0

我的环境是:

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

pip安装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()

0

实际上,按照@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
>>> 
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.