[Python]mysqlclientのインストール時に「NameError: name '_mysql' is not defined」が発生する場合の原因と対処法

2022年1月9日日曜日

Python

Djangoにてmysqlclient利用時に「NameError: name '_mysql' is not defined」が発生した際の原因と対処法を紹介します。

結論

必要なライブラリがインストールできていないため発生しているエラーです。必要なライブラリをインストールしていきます。

# mysqlclientのインストール
$ sudo apt-get install libmariadb-dev # このライブラリが不足していた
$ pip3 install mysqlclient

# migragte
$ python3 manage.py makemigrations
$ python3 manage.py migrate
$ python3 manage.py collectstatic

makemigrationsが正常に動作していれば「NameError: name '_mysql' is not defined」は解消されています。

PyMySQLとmysqlclient

余談ですが、DjangoにてMySQLを利用する場合「PyMySQL」と「mysqlclient」の2つのライブラリが選択肢に上がります。

Djangoの場合、公式ドキュメントが推奨するライブラリが「mysqlclient」のため「mysqlclient」を選択する方が無難です。

推奨されていないライブラリの場合将来的に互換性が保たれない等が懸念されます。

AIで副業ならココから!

まずは無料会員登録

プロフィール

メーカーで研究開発を行う現役エンジニア
組み込み機器開発や機会学習モデル開発に従事しています

本ブログでは最新AI技術を中心にソースコード付きでご紹介します


Twitter

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology