mecab-python3 のエラーの理由を教えて欲しい

[code]

    C:\Users\user>pip install mecab-python3
    Collecting mecab-python3
      Using cached mecab-python3-1.0.8.tar.gz (78 kB)
      Installing build dependencies ... done
      Getting requirements to build wheel ... done
      Installing backend dependencies ... done
      Preparing metadata (pyproject.toml) ... done
    Building wheels for collected packages: mecab-python3
      Building wheel for mecab-python3 (pyproject.toml) ... error
      error: subprocess-exited-with-error
    
      × Building wheel for mecab-python3 (pyproject.toml) did not run successfully.
      │ exit code: 1
      ╰─> [12 lines of output]
          WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
          running bdist_wheel
          running build
          running build_py
          creating build
          creating build\lib.win-amd64-cpython-312
          creating build\lib.win-amd64-cpython-312\MeCab
          copying src\MeCab\cli.py -> build\lib.win-amd64-cpython-312\MeCab
          copying src\MeCab\__init__.py -> build\lib.win-amd64-cpython-312\MeCab
          running build_ext
          building 'MeCab._MeCab' extension
          error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
          [end of output]
    
      note: This error originates from a subprocess, and is likely not a problem with pip.
      ERROR: Failed building wheel for mecab-python3
    Failed to build mecab-python3
    ERROR: Could not build wheels for mecab-python3, which is required to install pyproject.toml-based projects
    
    [notice] A new release of pip is available: 23.2.1 -> 23.3.1
    [notice] To update, run: python.exe -m pip install --upgrade pip
    
    C:\Users\user>pip install unidic-lite
    Requirement already satisfied: unidic-lite in c:\users\user\appdata\local\programs\python\python312\lib\site-packages (1.0.8)
    
    [notice] A new release of pip is available: 23.2.1 -> 23.3.1
    [notice] To update, run: python.exe -m pip install --upgrade pip
    
    C:\Users\user>import MeCab
    'import' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    
    C:\Users\user>wakati = MeCab.Tagger("-Owakati")
    'wakati' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    
    C:\Users\user>wakati.parse("pythonが大好きです").split()
    'wakati.parse' は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。
    
    C:\Users\user>
    
[/code]




エラーの理由が知りたい場合は、"error"または"ERROR"と書かれた行だけでも何が書いてあるのか確認します。

>
[code]

>       error: subprocess-exited-with-error
>           error: Microsoft Visual C++ 14.0 or greater is required. Get it
> with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-
> cpp-build-tools/
>       ERROR: Failed building wheel for mecab-python3
>     ERROR: Could not build wheels for mecab-python3, which is required to
> install pyproject.toml-based projects
>  
[/code]

>
[code]

>       エラー: サブプロセスがエラーで終了しました。
>           エラー: Microsoft Visual C++ 14.0以上が必要です。「Microsoft C++ Build Tools」:
> https://visualstudio.microsoft.com/visual-cpp-build-tools/ から入手してください。
>       エラー: mecab-python3のwheelのビルドに失敗しました。
>     エラー: project.toml-basedプロジェクトのインストールに必要なmecab-python3のwbeelをビルドできませんでした。
>  
[/code]

インデントはサブプロセスの中身を表すようになっているため、深いインデントの部分から読み取っていきます。

  1. Microsoft Visual C++ 14.0以上が必要だが、見つからなかったのでエラーになった。
  2. 1.のエラーによりサブプロセスがエラーで終了した。
  3. 2.のエラーによりwheelのビルドが失敗した。
  4. 3.のエラーによりpyproject.toml-basedプロジェクトがインストールできなかった。(つまり、mecab-python3がインストールできなかった)

よって、エラーの原因は「現在の環境でmecab-python3のインストール時のビルドに必要なMicrosoft Visual C++
14.0以上がないから」となります。

* * *

ここからは **おまけ** の解決策です。解決策は二つあります。 **どちらかを一方のみ**
を試してください。なお、どちらも64bit版Windowsで64bit版Pythonを使用する場合限定になります。32bit版では下記方法はうまくいきませんので、ご注意ください。

## Python3.11 を使う

Python3.12をアンインストールしてPython3.11をインストールしてください。

mecab-
python3にはWindows(64bit)版Python3.11向けにコンパイル済みwheelが用意されています(2023年11月4日現在、Python3.12向けは用意されていない)。エラーでビルドに失敗したwheelが既に用意されているため、ビルドの必要が無くなります。つまり、Microsoft
Visual C++ 14.0以上は必要なくなると言うことです。代わりに「Microsoft Visual C++
Redistributable」と言うランタイムが必要ですが、多くのソフトウェアで必要とされるランタイムであるため、既にインストールされている可能性が極めて高いです。もし、実行時にエラーが出る場合は、次のコマンドでインストールしてみてください。

[code]

    winget install Microsoft.VCRedist.2015+.x64
    
[/code]

なお、将来はPython3.12向けのコンパイル済みwheelも用意されると思われますので、それを待つというのもあります。(いつまで待てば良いのかはわかりませんが)

## Microsoft C++ Build Tools と Mecab をインストールする。

どうしてもPython3.12で使いたい場合は、wheelをビルドできる環境を自分で整えるしかありません。必要なのは次の二つです。

  * [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/)
  * [MeCabのWindows(64bit)用バイナリ](https://github.com/chezou/mecab)

「Microsoft C++ Build Tools」はBuild
Toolsをダウンロードしてインストールしてください。インストールするコンテンツの選択で「C++
によるデスクトップ環境」にチェックを入れてください。ビルドに必要なMSVC v143(Microsoft Visual C++
14.3)がインストールされるようになります。

MeCabのWindows(64bit)用バイナリは、左の「Release」をクリックして、Latestと付いたリリースのAssetsにある「mecab-
msvc-x64.zip」をダウンロードします。ダウンロードしたzipファイルを右クリックをして「プロパティ」を開きます。「mecab-
msvc-x64.zipのプロパティ」の全般タブの一番下にある「セキュリティ」の所で「許可する」にチェックを入れて「OK」を押します。続けて、zipファイルを再び右クリックして「全て展開...」をクリックし、ファイルを展開します。展開されたファイルがある「mecab-
msvc-x64」フォルダーをCドライブ直下(C:)に移動し、名前を「mecab」に変えます。「C:\mecab」フォルダー直下に下記のファイルがあるか確認してください。

  * meacb.h
  * mecab.lib
  * libmeacab.dll
  * libmeacab.lib

この状態で、mecab-python3のインストールを実行してください。

[code]

    pip install mecab-python3
    
[/code]

メッセージで"Successfully installed mecab-
python3-{バージョン}`が表示されれば成功です。なお、インストール時に必要なMeCabのライブラリ(libmecab.dll)はmecab-
python3のインストール先にコピーされるため、インストール完了後は「C:\mecab」は削除しても問題ありません。

* * *

最後に、その他の注意事項です。

mecab-python3を使うには辞書も必要です。辞書が何か欲わからない場合は、取りあえず次のコマンドを実行してください。

[code]

    pip install unidic-lite
    
[/code]

Pythonのコードは`python`を実行してから入力するか、ファイルにスクリプトを書いて、そのファイルを`python`で実行してください。コマンドプロンプトで`import
MeCab`等と入力しても動きません。

