pipを使用してPython MySQLdbモジュールをインストールする方法


310

pipを使用してPython用のMySQLdbモジュールをインストールするにはどうすればよいですか?


11
これをPython3で(たとえば、最新バージョンのDjangoで)使用する場合は、MysqlDBがpython3をサポートしていないため、mysqlclientが必要です。この質問を
TDスミス

これまでのところ問題なく、Python 2.7とMariaDBでmysqlclientを使用しています。
Dave Everitt、2018年

回答:


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

マックOS

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

9
私は毎回これをグーグルしなければならないので、いまいましいことを言っている
Sleepycal

3
@DavidOkwii virtualenv内にいない場合は、sudoが必要です。それが問題だったのかもしれません。
マリアン

138

新しいUbuntu 14.04.2システムから始めて、次の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/から


2
これは機能しましたが、なぜか単純なpipインストールがubuntuでクリーンに機能しません
Dap

ubuntu 14.04では、「raise EnvironmentError( "%s not found"%(mysql_config.path、)」というエラーが表示され、最初の
コマンドで

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1使用を修正するにはsudo apt-get install build-essential
FelikZ、2015

なぜこれが必要なのかしら。私には一つのことが起こります。インストールのみでビルドせずにこれをテストしました。単にインストールするのではなく、インストールしたものをビルドしましたか?
レイキディ

もちろんこれはUbuntuにとって受け入れられるべき答えです。
Roon13

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

22

64ビットバージョンのMySQLdbをWindowsにPip経由でインストールするときに問題が発生しました(問題のあるソースのコンパイル)[32ビットバージョンはインストール済み]。http://www.lfd.uci.edu/~gohlke/pythonlibs/から入手可能な.whlファイルからコンパイル済みMySQLdbをインストールするように管理

.whlファイルは、https://pip.pypa.io/en/latest/user_guide/#installing-from-wheelsのドキュメントとしてpipを介してインストールできます。

たとえば、次の場所に保存するとC:/

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

フォローアップ:64ビットバージョンのPythonがインストールされている場合、上のリンクから64ビットAMDバージョンのMySQLdbをインストールする必要があります(つまり、Intelプロセッサを使用している場合でも)。32ビットバージョンを代わりにインストールしようとすると、以下のコメントでサポートされていないホイールエラーが発生すると思います。


完全に失敗します。サポートされていないホイール
M Hornbacher 2016年

3
MySQLクライアントが必要でした。pip install mysqlclient-1.3.7-cp27-none-win_amd64.whl素晴らしい仕事。
arsenik

2
行ってきましたhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-pythonダウンロードするwhl(私は64ビットのPythonインストールに一致するように64ビットをdl'd)ファイル。ファイルをc:/ディレクトリに保存して実行しpip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whlました。数秒でインストールされ、問題ありませんでした。簡単すぎる!
curtisp 2016年

名前でのpipインストールが失敗していたため、私にとってもうまくいきました。
Artem Russakovskii 2017


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
マリアン

質問はピップ経由であると理解していますが、個人的にはピップを使用してそれを解決することができませんでした。したがって、私は問題を修正した回避策を共有しました。CentOS 6.8を使用しています。pipリストにmysqlに関連するものが何も表示されず、「pip install MySQL-python」を実行するとエラーが発生しました。興味深いことに、yum i:e "yum install MySQL-python"を使用してインストールすると、MySQLdbをインポートできることがわかりました。また、yumのインストールが完了すると、pipを使用してエラーなしでインストールできました。
アシュウィン2016

6

pycharmに移動し、デフォルト設定に移動します-> pip(ダブルクリック)-pymsqldb ..--> install-インストール後、次のようなプログラムで使用します

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



3

あなたがインストールすることができない場合はmysqlclientをあなたもインストールすることができpymysqlを

pip install pymysql

これはMySqldbと同じように機能します。その後、MySQLdbの代わりにpymysqlを使用します


これが答えです。
JayJay123

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に関連付けられているいくつかのファイルが必要です。 Stdioに。1つのソリューションはVS2008または2010をインストールすることです……明らかに、コストがかかりすぎます。

別の方法は@ bob90937の答えです。追加するためにここにいます。

http://www.lfd.uci.edu/~gohlke/pythonlibs、UはPythonプログラミング言語の公式CPythonの配布のために多くの科学的なオープンソースの拡張パッケージの多くのWindowsバイナリをダウンロードすることができます。

トピックに戻ると、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で、OSがDebian / Ubuntuであると想定していますが、それはわかりません。著者が詳細を追加するまでお待ちください。
phd 2017

0

私の環境は:

  • Windows 10 Pro、
  • 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()

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
>>> 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.