PythonのMySQLdbモジュール導入
PythonよりSQLを利用する際に、mysqlclinet ( MySQLdb ) モジュールを利用しています。
インストールされていないと、import MySQLdb時に、以下のエラーメッセージが出力されます。
ModuleNotFoundError: No module named 'MySQLdb'
pipコマンドで導入出来れば何も問題ないのですが、pip3でインストールしようとしたら、インストールに失敗しました。失敗時の出力は以下です。
$ pip3 install mysqlclient Defaulting to user installation because normal site-packages is not writeable Collecting mysqlclient Downloading mysqlclient-1.4.6.tar.gz (85 kB) |????????????????????????????????| 85 kB 1.7 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-xp5fjc04/mysqlclient/setup.py'"'"'; __file__='"'"'/tmp/pip-install-xp5fjc04/mysqlclient/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-sj8z3mc9 cwd: /tmp/pip-install-xp5fjc04/mysqlclient/ Complete output (12 lines): /bin/sh: 1: mysql_config: not found /bin/sh: 1: mariadb_config: not found /bin/sh: 1: mysql_config: not found Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-install-xp5fjc04/mysqlclient/setup.py", line 16, in <module> metadata, options = get_config() File "/tmp/pip-install-xp5fjc04/mysqlclient/setup_posix.py", line 61, in get_config libs = mysql_config("libs") File "/tmp/pip-install-xp5fjc04/mysqlclient/setup_posix.py", line 29, in mysql_config raise EnvironmentError("%s not found" % (_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.
mysqlclinetの Pipインストール時エラーの対策
libmysqlclinet-devがインストールされていると、mysqlclinetのインストールが成功するようです。
aptコマンドを用いて、libmysqlclinet-devを導入し、mysqlclinetをpip3コマンドで導入します。
$ sudo apt install libmysqlclient-dev $ pip3 install mysqlclient