PythonのMSVC 14.0要求エラー対処法
冒頭まとめ WindowsでPythonのパッケージを入れる途中に、次のエラーが出ることがあります。 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/ setuptoolsが、CやC++のコードを組み立てるためのMicrosoft製の道具を見つけられなかったことを示します。確認したsetuptoolsの実装では、環境を設定する vcvarsall.bat が見つからないと、この文言を出します。 対処は、組み立て済みの配布物を使うか、ソースから組み立てるためのC++部品を導入するかです。Visual Studioの編集画面を含む本体を、必ず入れる必要はありません。 どのパッケージの組み立てで止まったかを読む 最後のエラー行だけでなく、その前にあるパッケージ名を確認してください。自分が指定したパッケージではなく、その依存先の組み立てが失敗していることもあります。 実例として、setuptoolsのIssue #4431では、Windows上でpyvexを導入する過程でcffiのソース配布物が選ばれ、その処理中に同じMSVCの要求が出ています。報告時の環境はPython 3.13の開発版とpip 24.1です。この報告だけで、現在の同じパッケージも必ず失敗するとは言えません。 実行に使うPythonの場所と版も記録します。以下はWindowsのコマンドプロンプト用です。 python --version python -m pip --version python -c "import sys, platform; print(sys.executable); print(platform.machine())" 以降の SomePackage は、実際に導入する配布名に置き換えてください。仮想環境を使っている場合は、その環境のPythonで実行します。 組み立て済みの配布物だけで導入できるかを確認する wheelは、導入用に組み立てて配布されるファイルです。Python Packaging User Guideによると、pipは対応するwheelを優先し、見つからなければソース配布物からwheelを作ります。C/C++の拡張を含むソースを使うと、手元の組み立て用の道具が必要になる場合があります。 ソースを使わずに導入したい場合は、次を実行します。 python -m pip install --only-binary=:all: SomePackage pipの公式説明では、この指定はソース配布物を使用しません。必要な依存先も含めて条件に合うwheelが無ければ、導入は失敗します。失敗した場合は、表示された配布名について、対応するPythonの版やWindows向けの配布ファイルを確認してください。 これはMSVCを導入する指定ではありません。ソースからの組み立てを避けられるかを判断する方法です。 --prefer-binary は、より新しいソース配布物があってもwheelを優先する別の指定です。ソースの利用自体を禁止するものではないため、組み立てを確実に避けたい場合は --only-binary=:all: を使います。 Build ToolsではC++の部品を選ぶ ソースから組み立てる必要がある場合は、Microsoft C++ Build Toolsの配布ページから入手します。 ...