Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

ModuleNotFoundError を修正:Python に MySQLdb モジュールがありません

MySQL は、Python で使用するのに最も効率的なものの 1 つです。 Python モジュール「mysqldb」を使用すると、Python を MySQL に接続できます。モジュールがシステムにインストールされていない場合は、「'mysqldb' という名前のモジュールがありません」というエラーが発生します。

ModuleNotFoundError:MySQLdb という名前のモジュールがありません修正

この投稿では、考えられる原因と、「mysqldb という名前のモジュールがありません」というエラーを修正するための解決策について説明します。

このエラーが発生するのはなぜですか?

Python モジュールは、単一のパッケージまたは複数のパッケージに依存します。 「mysqldb」に関連するパッケージの 1 つがインストールされていないときにモジュールをインポートしようとすると、「mysqldb という名前のモジュールがありません」というエラーが発生します。

ここのスニペットは、インポートしようとしているがエラーが発生したことを示しています。

モデルが見つかりませんエラー

解決策:「MySQLdb」 をインストールする

「MySQLdb」モジュールは、Python ベースのマネージャーである PIP を通じて利用できます。 PIP がシステムにインストールされていることを確認してください。完全なソリューションは次の手順で示されます。

ステップ 1:PIP をインストールする

PIP は、次の一連のコマンドを使用して Linux にインストールできます。

$ sudo apt install python3-pip           #For Debian and Ubuntu-Based Distributions
$ sudo yum install python3-pip           #For CentOS7/RHEL
$ sudo dnf install python3-pip           #For Fedora/CentOS8
$ sudo pacman -S python3-pip             #For Arch-Based Distributions
python3-pipのインストール

Python2 に PIP をインストールするには、パッケージ名「python-pip」を使用する必要があります。

ステップ 2:「mysqlclient」 パッケージをインストールする

「MySQLdb」モジュールは、PIP の異なるパッケージをインポートする前にインストールする必要がある 2 つのパッケージに関連付けられています。最初のパッケージは「mysqlclient」で、Python が MySQL に接続できるようにします。

このパッケージがないことが、モジュールをインポートできない主な理由です。 「mysqlclient」パッケージは、次のように Linux にインストールできます。

$ pip3 install mysqlclient
MySQLパッケージをインストールする

「mysqlclient」のインストール中にエラーが発生する場合があります。

がないためです。

Python の開発パッケージを使用して、システムにパッケージ「mysqlclient」を埋め込みます。このパッケージのセットは、次のコマンドを使用してインストールできます。

$ sudo apt install python3-dev default-libmysqlclient-dev build-essential
$ sudo yum install python3-dev default-libmysqlclient-dev build-essential
$ sudo dnf install python3-dev default-libmysqlclient-dev build-essential

注: 「apt」、「yum」、「dnf」は、Debian/Ubuntu、CentOS/RHEL、および Fedora ベースのディストリビューションを指します。

MySQL ビルド必需品のインストール

「mysqlclient」をインストールした後、モジュールをインポートしてみます。エラーが残る場合は、次に進みます。

ステップ 3:「mysql-connector-python」 をインストールする

このパッケージにより、Python が MySQL データベースに接続できるようになります。次の PIP ベースのコマンドを使用してインストールできます。

$ sudo pip3 install mysql-connector-python
PythonをMySQL DBに接続する

Python2 に PIP を使用している場合は、パッケージ マネージャー名「pip3」を「pip2」に置き換えます。

ステップ 4:解決策を確認する

次に、完全な名前を使用してモジュールをインポートします。

>>> import MySQLdb
MySQLdbをインポートする

スクリーンショットは、モジュールが Python 環境にインポートされていることを示しています。

このモジュールのインポートに必要なパッケージがないときにユーザーがモジュールをインポートしようとすると、「mysqldb という名前のモジュールがありません」というエラーが発生します。このエラーは、システムにパッケージ「mysqlclient」をインストールすることで修正できます。ただし、まだ修正されていない場合は、PIP を使用して「mysql-connector-python」パッケージをインストールします。この投稿では、Linux 上の「MySQLdb」モジュール エラーの理由と修正方法をリストしました。

著者について

ModuleNotFoundError を修正:Python に MySQLdb モジュールがありません

ムハマド・ズビャン

Muhammad Zubyan は、7 年以上の豊富な経験を持つ認定 Google IT サポート プロフェッショナルです。彼は 1,500 台以上のコンピュータに取り組み、Windows 関連の問題やエラーの複雑な根本原因を検出してトラブルシューティングできる貴重な洞察を獲得しました。彼は上級編集者として Appuals を管理することに加えて、現在、ゲーマーとカジュアル ユーザーの両方に同様に対応する独自のゲーム最適化プログラムを開発しています。


  1. 修正:VMの初期化中にエラーが発生し、オブジェクトヒープ用に十分なスペースを予約できませんでした

    最近のJavaアプレットは一般的なWebテクノロジーではありませんが、Java仮想マシンをLinuxサーバーに直接デプロイする理由は無数にあります。 Linux javaコマンドをディスクリートハードウェア上または独自のVM内で完全に実行しようとすると、「VMの初期化中にエラーが発生し、オブジェクトヒープ用の十分なスペースを予約できませんでした」というメッセージが表示される場合があります。 コマンドを実行するのに十分なRAMがある可能性が高いため、これはおそらくかなり奇妙に見えますが、これは主に、物理メモリページと仮想メモリページが使用される方法の特定の癖によるものです。比較的大きなサイズを

  2. Linux bc を 16 進数計算機として使用する:クイック コマンドライン チュートリアル

    Linux などのさまざまな Unix 系オペレーティング システム実装や、GNU スイートを備えたほぼすべてのものには、基本的な電卓言語 bc が含まれています。その構文は C プログラミング言語に非常に似ています。コマンド ラインから直接 16 進数の計算機として使用できるため、スマートフォンに 16 進数または 8 進数のアプリを再度ダウンロードする必要はありません。 これは開発者や宿題をしている人にとって素晴らしいニュースです。ただし、これを行うにはターミナルを開く必要があります。 Ctrl、Alt、T を押し続けるか、Ubuntu Unity Dash で「ターミナル」という単語を