sushi.py

sushiを食いてぇ!という思いで書くブログ

mysqlclientをインストールできないときの対処法

はじめに

Pythonによるクローラースクレイピング入門 設計・開発から収集データの解析まで」を読んでいて、mysqlclientをインストールする必要があった。 pip install mysqlclientでインストールをしようとしたところ、

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com
/visual-cpp-build-tools

というエラーが発生してインストールできなかった。

本記事ではmysqlclientをインストールしようとして上記のエラーが発生したときの対処法について説明する。

環境

以下の環境で実行した。

  • Windows 10 Home
  • Python 3.6.2 :: Anaconda custom (64-bit)
  • pip 9.0.1
  • virtualenv 16.0.0

結論

下記のURLから環境に適した.whlファイルをダウンロードしてダウンロードフォルダまで移動してpip install <package_name>を実行する。

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

Step 1

上記URLにアクセスすると様々なバージョンの.whlファイルがあることがわかる。どのバージョンのファイルをダウンロードすればいいのかは次の方法で調べることができる。

コマンドプロンプトPowerShellを起動してpythonと入力してPythonの対話モードを起動する。virtualenvなどで仮想環境をつくっていてその環境にインストールしたい場合は仮想環境に入った状態で対話モードを起動する。

Step2

対話モードで下記のコードを実行する。

from pip._internal.pep425tags import get_supported
get_supported()

これでPythonの実行環境がサポートしているwheelバイナリパッケージのアーキテクチャを確認することができる。 わたしの環境では以下の結果が出力された。

[('cp36', 'cp36m', 'win_amd64'), ('cp36', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]

この出力結果から、cp36のcp36mのwin_amd64に対応していることがわかる。

Step3

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient にアクセスして対応してるバージョンのパッケージをダウンロードする。 わたしの環境ではcp36 cp36m win_amd64に対応していることがわかっているので、mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whlをダウンロードした。

Step4

さきほどダウンロードした.whlファイルがあるディレクトリまで移動する。 仮にC:\download\にダウンロードしたファイルがあるならば、 コマンドにcd C:\donwload\と入力して移動する。

そしてpip install <package_name>を実行する。 <package_name>の部分はダウンロードした.whlファイル名で置き換える。 わたしはmysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whlをダウンロードしたので、pip install mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl`と実行した。

これでSuccessfully installedと出力されればOK.

最後に

最初に出会ったエラーは

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com
/visual-cpp-build-tools

だった。現在、http://landinghub.visualstudio.com/visual-cpp-build-tools にアクセスすると404 NOT FOUNDが表示される。 以下の記事を参考にしてVisualStudio C++ Build Toolsをインストールして再度pip install mysqlclientを実行したところ、

 _mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

というエラーが発生して結局インストールできなかったので、バイナリパッケージからインストールするという手法をとった。 (VisualStudio C++ Build Toolsをインストールするのになんだかんだで1時間近くかかった。時間の無駄だった😥)