ModuleNotFoundError: No module named ‘MySQLdb’ エラー
Contents
Python で MySQL(MariaDB)を利用するとエラー
Python で MySQL(MariaDB)を操作する際に、mysqlclient を利用しようとして以下のようなエラーが発生しました
ModuleNotFoundError: No module named 'MySQLdb'
これは、MySQLdb モジュール(mysqlclient)がインストールされていないために発生します。Python 3では MySQL-python は非推奨になっています。そのため、代わりに mysqlclient を使用するのが一般的です。
MariaDB 環境での正しい mysqlclient のインストール手順
「mysqlclient」を導入する場合は、以下のコマンドでインストールできますが、エラーが発生する場合はインストールに必要なパッケージが不足しているのでインストールする必要があります
$ pip3 install mysqlclient
「pip3 install mysqlclient」でエラーになった場合は、下記のコマンドで必要なパッケージをインストールしてからインポートします
# 必要なパッケージをインストール $ sudo dnf install python3-devel mariadb-connector-c mariadb-connector-c-devel -y # mysqlclient をインストール $ pip3 install mysqlclient
MySQL 環境での正しい mysqlclient のインストール手順
MySQLでも、「pip3 install mysqlclient」でインストールしますが、必要なパッケージが異なりますので事前に必要なパッケージをインストールしてからインストールします
# 必要なパッケージをインストール $ sudo dnf install mysql-libs mysql-common # mysqlclient をインストール $ pip3 install mysqlclient
mysql-libs と mariadb-connector-c の違い
MySQL と MariaDB では利用するクライアントライブラリが異なります。
パッケージ | 説明 | MySQL/MariaDB どちら向け? |
---|---|---|
mysql-libs |
Oracle MySQL のクライアントライブラリ | MySQL 向け(MariaDB 非推奨) |
mysql-common |
MySQL の共通ライブラリ | MySQL 向け(MariaDB 非推奨) |
mariadb-connector-c |
MariaDB 用のクライアントライブラリ | MariaDB 向け(推奨) |
mariadb-connector-c-devel |
MariaDB クライアント開発用ライブラリ | MariaDB 向け(推奨) |
MariaDB 環境で mysql-libs
や mysql-common
をインストールすると、依存関係の競合が発生する可能性があります。
そのため、MariaDB を使っている場合は mariadb-connector-c を利用することが推奨されます。
MySQLの場合は、mysql-libs, mysql-common を利用することが推奨されます
ディスカッション
コメント一覧
まだ、コメントがありません