2026/5/27

cshogiの導入でmetadata-generation-failedが発生したときの解決策

python

状況

 pipコマンドでcythonを導入しようとしたとき、以下のエラーが発生しました。

Terminal window
>pip install cshogi
Collecting cshogi
Using cached cshogi-0.9.7-cp313-cp313-win_amd64.whl.metadata (913 bytes)
Collecting numpy<1.27.0,>=1.26.0 (from cshogi)
Using cached numpy-1.26.4.tar.gz (15.8 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
exit code: 1
╰─> [12 lines of output]
+ C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python313\python.exe C:\Users\(ユーザー名)\AppData\Local\Temp\pip-install-b27ln1ga\numpy_6b3d82dc48cc4c0bbed62f8ec39cd925\vendored-meson\meson\meson.py setup C:\Users\(ユーザー名)\AppData\Local\Temp\pip-install-b27ln1ga\numpy_6b3d82dc48cc4c0bbed62f8ec39cd925 C:\Users\(ユーザー名)\AppData\Local\Temp\pip-install-b27ln1ga\numpy_6b3d82dc48cc4c0bbed62f8ec39cd925\.mesonpy-mvtmn4tt -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=C:\Users\(ユーザー名)\AppData\Local\Temp\pip-install-b27ln1ga\numpy_6b3d82dc48cc4c0bbed62f8ec39cd925\.mesonpy-mvtmn4tt\meson-python-native-file.ini
The Meson build system
Version: 1.2.99
Source dir: C:\Users\(ユーザー名)\AppData\Local\Temp\pip-install-b27ln1ga\numpy_6b3d82dc48cc4c0bbed62f8ec39cd925
Build dir: C:\Users\(ユーザー名)\AppData\Local\Temp\pip-install-b27ln1ga\numpy_6b3d82dc48cc4c0bbed62f8ec39cd925\.mesonpy-mvtmn4tt
Build type: native build
Project name: NumPy
Project version: 1.26.4
..\meson.build:1:0: ERROR: Compiler cl cannot compile programs.
A full log can be found at C:\Users\(ユーザー名)\AppData\Local\Temp\pip-install-b27ln1ga\numpy_6b3d82dc48cc4c0bbed62f8ec39cd925\.mesonpy-mvtmn4tt\meson-logs\meson-log.txt
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> numpy
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

解決策

 ログを見るに、1.26.4のnumpyをインストールしようとしたところ、私の環境では2.3.2のバージョンのnumpyが入っていたために、何らかのコンパイル処理でエラーが起こったと思われます。
 そのため、以下のようにpip install時にnumpyをインストールしないように指定するとうまくいきました。

Terminal window
>pip3 install cshogi --no-deps numpy
Collecting cshogi
Using cached cshogi-0.9.7-cp313-cp313-win_amd64.whl.metadata (913 bytes)
Requirement already satisfied: numpy in .\AppData\Local\Programs\Python\Python313\Lib\site-packages (2.3.2)
Downloading cshogi-0.9.7-cp313-cp313-win_amd64.whl (693 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 693.4/693.4 kB 6.6 MB/s 0:00:00
Installing collected packages: cshogi
Successfully installed cshogi-0.9.7

最後に

 公式にどのnumpyをサポートしているかは明示されていませんが、ログを見る限りではNumPy 1系を基準にビルドされていると考えられます。NumPy 2.0でC言語APIの破壊的変更が行われたため、私の方法のようにNumPy 2系にしてしまうと、意図しない挙動やバグが起こる可能性があります。
 そのときは、numpyのバージョンを下げるなどして対応する必要があります。