Webデザイン

gulp-sassインストール時のエラー「`which` failed Error: not found: python2」の対処方法(Windows)

Webデザイン
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2

gulp-sassをインストールしたところ上記のエラーが発生。
python2へのパスが通ってませんよーとのこと。

どうやらNode.jsのバージョンを最新版の15.13.0にあげたことが原因でした。

インストールしようとしたgulp-sassはv4.1.0
gulp-sass v4.1.0と依存関係にあるnode-sassはv4.14.1
node-sass v4.14.1はNode.js v14.xまでしか対応していません。
そのためgulp-sassのインストールでエラーが出てしまっていたようです。

以下に対処方法を備忘録として残しておきます。(2021.04.現在)

node.jsのバージョンをv14に戻す

まずnode.jsが最新のv15の方はバージョンをv14にダウングレードします。

(Nodistというnode.jsのバージョン管理ツールをインストールしている場合は使用したいバージョンに切り替え出来るようですが、2019年頃から更新がストップしているとのこと。
ちょっとした不具合が起きる場合もあるようなので今回は再インストールする手順を紹介します)

node.jsのアンインストール

下記のサイトを参考にアンインストールしていきます。

  • node.jsのアンインストーラーでアンインストール。
  • アンインストーラで消えていないフォルダ・ファイルを手動で削除します。
    1. C:\program files\nodejs
    2. C:\Users\<ユーザー名>\AppData\Roaming\npm
    3. C:\Users\<ユーザー名>\AppData\Roaming\npm-chche
    4. C:\Users\<ユーザー名>.node_repl_history
  • 環境変数のPATHをチェックして、nodeとかnpmとかいう文字列があったら削除

node.jsの再インストール

アンインストールが終わったら再度node.js公式サイトからv14をインストールしなおします。

Windows版のインストーラーでは、ビルドツール(C/C++コンパイラ)も一緒にインストールするかどうかの選択肢が出てきますのでインストールしておくと良いかもしれません。(Python2とVisual Studio)

node.jsとnpmのバージョンを確認する

インストールしたnode.jsのバージョンを確認します。
コマンドプロンプトでnode -vと入力してバージョンを確認しましょう。

ちなみにnpm(Node Package Manager)も一緒にインストールされているので併せてバージョンの確認をしましょう。npm -vと入力してバージョンを確認できます。

command + Rキーで「ファイル名を指定して実行」画面を立ち上げて、cmdと入力すればコマンドプロンプト画面を立ち上げることができます。

  • node → v14.16.0
  • npm → 6.14.11

上記のようにバージョンが表示されていればインストール完了です。

gulpのバージョンを確認

gulpのバージョンも確認します。gulp -vと入力してバージョンを確認しましょう。

  • CLI version 2.3.0
  • Local version 4.0.2

グローバルにgulp-cliをインストールしているのでgulp-cliは2.3.0。
プロジェクト配下にgulp本体をインストールしているのでLocalは4.0.2となっています。

ちなみにgulp-cliについて分かりやすい記事を見つけました。

ビルドツールがインストールされているか確認

  • Python2
  • Visual Studio

いくつかのnpmモジュールをビルドする際にPython2とVisual Studioを使用するのでPCにインストールされているか確認します。
(node.jsの再インストール時にビルドツールも一緒にインストールされていればこちらは必要ないと思いますが念のため確認です。)

ちなみにPythonのバージョンもv2.7系じゃないとダメなのでv3系をインストールされている場合はダウングレードします。

Visual Studioについてはインストールされていれば基本大丈夫かと思います。ない場合は
Visual C++ Build Toolsからダウンロードしてインストールします。(結構時間がかかります)

もしくはビルドツールを自動でやってくれるwindows-build-toolsというものがあるようです。
こちらの方が簡単ですね(^^)

gulp-sassを再インストール

ようやくgulp-sassを再インストールしてみます。

C:\Users\kenyo_c\Documents\vagrant.03\vccw\gulptest>npm install gulp-sass --save-dev
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported

> node-sass@4.14.1 install C:\Users\kenyo_c\Documents\vagrant.03\vccw\gulptest\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/win32-x64-83_binding.node
Download complete..] - :
Binary saved to C:\Users\kenyo_c\Documents\vagrant.03\vccw\gulptest\node_modules\node-sass\vendor\win32-x64-83\binding.node
Caching binary to C:\Users\kenyo_c\AppData\Roaming\npm-cache\node-sass\4.14.1\win32-x64-83_binding.node

> node-sass@4.14.1 postinstall C:\Users\kenyo_c\Documents\vagrant.03\vccw\gulptest\node_modules\node-sass
> node scripts/build.js

Binary found at C:\Users\kenyo_c\Documents\vagrant.03\vccw\gulptest\node_modules\node-sass\vendor\win32-x64-83\binding.node
Testing binary
Binary is fine
npm WARN gulptest@1.0.0 No description
npm WARN gulptest@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ gulp-sass@4.1.0
added 136 packages from 118 contributors, updated 339 packages and audited 478 packages in 104.593s

10 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

ようやくgulp-sassのインストールが完了しました。。
バージョンがひとつ違うだけでこんなに手間がかかるとは…。
他のエラーについても対処法を残していこうと思います。

以下のサイトを参考にさせて頂きました!ありがとうございます!

comment

タイトルとURLをコピーしました