ImportError:MySQLdbという名前のモジュールはありません


124

私のWebアプリケーションのログインページを作成するために、次のチュートリアルを参照しています。 http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

データベースに問題があります。私は得ています

ImportError: No module named MySQLdb

私が実行するとき

http://127.0.0.1:5000/testdb

私はpython mysqlをインストールするために可能なすべての方法を試しました。これは、チュートリアルで言及されている方法、easy_install、sudo apt-get installです。

mysqlを仮想環境にインストールしました。私のディレクトリ構造は、チュートリアルで説明されているものとまったく同じです。モジュールがシステムに正常にインストールされましたが、それでもこのエラーが発生します。

助けてください。これを引き起こしている可能性があります。


MySQLをインストールしましたが、Python用のMySQLdbパッケージをインストールしましたか?
Ffisegydd 2014年

私はsudo apt-get install mysql-pythonを使用しました。私はピップを使用したとき、私はmysql_configをのための環境エラーを得た
user3182194

mysqlが私の仮想環境内にインストールされ、正常に動作し、mysqldbもインストールされています。
user3182194 2014年

回答:


277

バイナリ拡張のコンパイルに問題がある場合、またはできないプラットフォームでは、純粋なPython PyMySQLバインディングを使用してみてください。

pip install pymysqlSQLAlchemy URIを次のように切り替えるだけです。

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'

他にも試してみたいドライバーがいくつかあります。


私は何か見落としてますか?なぜこれがここにリストされていないのですか?具体的には、その方言名:docs.sqlalchemy.org/en/latest/core/engines.html。これは私が間違っていたものです、ありがとう。
CashIsClay 2018

db uriは、使用するコネクタによって多少異なります:)
Braden Holt

これはpython2.7。*では機能しませんでした。pip install MySQL-python働いたの使用。
Rahul Goyal

1
これは、flask-sqlalchemyエラーの解決策を探しているときに非常に役立ちました。直面した問題:1. WSGIアプリケーションの実行エラーModuleNotFoundError: 'MySQLdb'という名前のモジュールがない2.(_mysql_exceptions.OperationalError)(2006、 'SSL接続エラー:SSL_CTX_set_tmp_dhが失敗しました')(このエラーの背景:sqlalche.me/e/e3q8)ありがとうございました。私が行ったように、他の人がこのエラーの説明でこの解決策をより早く見つけてくれることを願っています!
ベン

CentOSでの作業は、OSに最も依存しない答えのようです。ありがとう!
trpt4him

94

またはこれを試してください:

apt-get install python-mysqldb

9
質問への答えはこれだと思います
codersofthedark

1
python-mysqldbにはVC ++ライブラリのようないくつかの依存関係があり、64ビットOSでは動作しない場合があります
Nima Soroush

1
これも私にとってはうまくいきました。Ubuntu 16.04とPython 2.7
genepool99

この答えは自分の問題を解決しなかったそれらの人々にとって、これはvirtualenvの発行見ることが原因である可能性があります:stackoverflow.com/a/43984484
陳レビー

より正確には:sudo apt-get install python-mysqldb
Tina J

24

やってみませんか

pip install mysqlclient

2
Python 3.7.3で動作します
nsssayom

1
共有していただきありがとうございます。Windowsを使用していたときに機能しましたが、Ubuntuで同じアプリを実行しようとしたときにmysqlclientOSError: mysql_config not found)に問題がありましたが、承認された回答で解決しました。
ビラル

anacondaとpython 3.7.6を備えたOSXで動作します
SaaruLindestøkke

16

私の問題は:

return __import__('MySQLdb')
ImportError: No module named MySQLdb

そして私の決断:

pip install MySQL-python
yum install mysql-devel.x86_64

最初に、MySQL-pythonをインストールしましたが、問題はまだ存在していました。したがって、この問題が発生した場合は、mysql-develも考慮する必要があります。お役に立てれば。


2
pip install MySQL-pythonええ、それがチケットです
カービー

これは、Windows環境のMicrosoft Visual C ++ライブラリに依存します
Erizo

15

SQLAlchemyで作業していたときにこの問題が発生しました。SQLAlchemy for MySQLで使用されるデフォルトの方言はmysql+mysqldbです。

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

No module named MySQLdb上記のコマンドを実行すると「」エラーが発生しました。それを修正するためにmysql-pythonモジュールをインストールし、問題が修正されました。

sudo pip install mysql-python

3
mysql-pythonをインストールする前に、mysqlまたはmsyql_configコマンドを含む何かをインストールする必要があります。
mxi1 2015

8

私の経験では、Pythonのバージョンにも依存します。

Python 3を使用している場合、@ DazWorrallの回答がうまくいきました。

ただし、Python 2を使用している場合は、

sudo pip install mysql-python

これは、SQLAlchemy URIを変更せずに「MySQLdb」モジュールをインストールします。


2
誰かがダウンしていて、環境エラーが発生している場合:mysql_configがちょっと見つからない場合は、sudo apt-get install libmysqlclient-devが役立ちます。元の回答:stackoverflow.com/a/5178698/2190689
ssi-anik '11 / 11/16

構成パーサータイプのエラーが発生した場合は、これを確認できます。stackoverflow.com/a/23978968/2190689
ssi-anik 2016年

7

だから私は実行しようとするときにこの問題に対処する方法を理解しようと約5時間を費やしました

./manage.py makemigrations

Ubuntu Server LTS 16.1、完全なLAMPスタック、Apache2 MySql 5.7 PHP 7 Python 3、およびDjango 1.10.2では、これに対する良い答えを見つけるのに本当に苦労しました。実際、私はまだ満足していませんが、私のために働いた唯一の解決策はこれです...

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

続いて(仮想環境内から)

pip install mysqlclient

新しいWebサーバーをセットアップするときに開発インストールを使用しなければならないことは本当に嫌いですが、残念ながら、この構成が唯一可能な最も快適な方法でした。


「-dev」パッケージとコンパイラがない場合、コンパイルが必要なC拡張コンポーネントを持つPythonモジュールをインストールできません。あなたの唯一の選択肢は、追加のビットを含む別のビルドボックスを使用して、Pythonホイールファイルをビルドすることです。次に、ホイールをターゲットシステムにコピーし、代わりにホイールからパッケージをインストールします。
Graham Dumpleton、2016年

3

一方で@EdwardバンKuik答えが正しいか、それが考慮されていませんvirtualenvのv1.7デベロッパーとし、上記の問題を

特に、Ubuntuにpython-mysqldbvia aptをインストールする/usr/lib/pythonX.Y/dist-packagesと、に配置されますが、このパスは、デフォルトではvirtualenvに含まれていませんsys.path

したがってこれを解決するには、次のようなものを実行して、システムパッケージでvirtualenvを作成する必要があります。

virtualenv --system-site-packages .venv


0

権限に関連する多くのエラーを取得しました。あなたはこれを試してみたいかもしれません:

xcode-select --install


0

ubuntu 20では、これを試すことができます:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.