web-dev-qa-db-ja.com

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

私の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をインストールしました。私のディレクトリ構造は、チュートリアルで説明したものとまったく同じです。モジュールは私のシステムに正常にインストールされ、それでも私はこのエラーを受けています。

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

93
user3182194

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

pip install pymysqlを実行して、SQLAlchemyのURIを次のように変更してください。

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

いくつかあります 他のドライバ あなたも試すことができます。

209
DazWorrall

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

apt-get install python-mysqldb
87
Edward van Kuik

私の問題は:

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

そして私の決議:

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

最初はMySQL-pythonをインストールしたばかりでしたが、問題はまだ残っていました。だから私はこの問題が起こったなら、あなたはmysql-develも考慮に入れるべきだと思います。お役に立てれば。

16
Adventurist

やってもいいですか

pip install mysqlclient
13
Doni

私が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
13

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

あなたがPython 3を使っているなら、@ DazWorrallの答えは私のためにうまく働きました。

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

Sudo pip install mysql-python

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

7
seokhoonlee

実行しようとしたときに私はこの問題に対処する方法を見つけ出すために約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インストールを使用しなければならないことは本当に嫌いですが、残念ながらこの設定が唯一可能な唯一の快適な方法でした。

4
Flibertyjibbet

@ Edward van Kuikanswer は正しいのですが、 virtualenv v1.7以降の問題 は考慮されていません。

特にUbuntuでaptを介してpython-mysqldbをインストールする場合、/usr/lib/pythonX.Y/dist-packagesの下に置きますが、デフォルトではこのパスはvirtualenvのsys.pathに含まれていません。

だから これを解決するために 、あなたはシステムパッケージを使ってvirtualenvを作成する必要があります。

virtualenv --system-site-packages .venv

3
Chen Levy
yum install MySQL-python.x86_64

私のために働いた。

0
hamed

パーミッションに関係したエラーがたくさんありました。あなたはこれを試してみたいかもしれません:

xcode-select --install
0