mysqlclientインストール時の「mysql_config not found」を解決する方法
pipでmysqlclientインストール時に「mysql_config: コマンドが見つかりません」が発生した場合の対処法を解説します。Ubuntu・CentOS・macOS別の必要パッケージ、pkg-configの導入方法、Django環境での対応手順まで紹介します。
目次
環境
- OS CentOS Linux release 7.9.2009 (Core)
- pip 20.3.3
- mysql 5.7.32
エラー全文
mysqlclientインストール時に発生。
pip install mysqlclientエラー全文
Collecting mysqlclient
Downloading mysqlclient-2.0.3.tar.gz (88 kB)
|████████████████████████████████| 88 kB 5.5 MB/s
ERROR: Command errored out with exit status 1:
command: /home/testuser/anaconda3/envs/py36/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-rjlw_3ha/mysqlclient_7cad4d23b07942d8b610dcf40f8507ac/setup.py'"'"'; __file__='"'"'/tmp/pip-install-rjlw_3ha/mysqlclient_7cad4d23b07942d8b610dcf40f8507ac/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-02d1lvj7
cwd: /tmp/pip-install-rjlw_3ha/mysqlclient_7cad4d23b07942d8b610dcf40f8507ac/
Complete output (15 lines):
/bin/sh: mysql_config: コマンドが見つかりません
/bin/sh: mariadb_config: コマンドが見つかりません
/bin/sh: mysql_config: コマンドが見つかりません
mysql_config --version
mariadb_config --version
mysql_config --libs
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-rjlw_3ha/mysqlclient_7cad4d23b07942d8b610dcf40f8507ac/setup.py", line 15, in <module>
metadata, options = get_config()
File "/tmp/pip-install-rjlw_3ha/mysqlclient_7cad4d23b07942d8b610dcf40f8507ac/setup_posix.py", line 70, in get_config
libs = mysql_config("libs")
File "/tmp/pip-install-rjlw_3ha/mysqlclient_7cad4d23b07942d8b610dcf40f8507ac/setup_posix.py", line 31, in mysql_config
raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.原因
「mysql_config: コマンドが見つかりません」と書いてる通り、必要なパッケージが足らなかったようです。
対処法
以下を、インストールすれば解決しました。
sudo yum install python-devel mysql-community-devel
補足
mysql_config: コマンドが見つかりません は、mysqlclientのビルドに必要なMySQL(またはMariaDB)の開発用パッケージがインストールされていない場合に発生することが多いエラーです。
OSごとに必要なパッケージが異なるため、利用している環境に応じて事前にインストールしておきましょう。
Ubuntu・Debian系の場合
sudo apt update
sudo apt install python3-dev default-libmysqlclient-dev build-essential pkg-config
pip install mysqlclientCentOS・RHEL系の場合
sudo yum install python3-devel mysql-devel pkgconfig
pip install mysqlclientmacOS(Homebrew)の場合
brew install mysql-client pkg-config
export PKG_CONFIG_PATH="$(brew --prefix)/opt/mysql-client/lib/pkgconfig"
pip install mysqlclientなお、mysqlclient 2.2以降では、従来のmysql_configだけではなくpkg-configも利用してライブラリを検出する仕組みに変更されています。
そのため、最近の環境ではpkg-configのインストールだけで解決するケースもあります。
参考リンク
関連記事
-
前の記事
CSSすら不要!htmlの「detailsタグ、summaryタグ」でアコーディオン 2021.01.07
-
次の記事
Nuxt.js ライブラリ「vue-multi-split-pane」を使用してマルチスプリットペインを実装する 2021.01.08
コメントを書く