[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の技術動向を調査しブログにアウトプットしています。 AIに関するご相談やお仕事のご依頼はブログのお問い合わせフォームか以下のアドレスまでお気軽にお問い合わせください。 bhupb13511@yahoo.co.jp

カテゴリ

このブログを検索

ブログ アーカイブ

TeDokology