ERR! gyp ERR! stack Error: Can’t find Python executable “python”, you can set the PYTHON env variable.

npm startでエラーになり解決した記録。

  • MacOS Monterey バージョン12.6
  • Node 13.14.0 nodenvを使ってインストールしたもの

nodebrewでnode.jsをインストールしていたが、nodenvでインストールする必要がありインストールしてnpm run startしたところエラーが。 pythonは過去にhomebrewでインストールしていた。しかし、タイトルのエラーが出た。インストールしてあるのに??となった。brew listにはpyenvもインストールしてあったので、pyenvを経由してインストールする必要があるかも、、と推測のもと実行したところ上手くいった。

homebrewでインストールしたものを確認
brew list

結果、python@3.9とpython@3.10とpyenvがあることを確認。

aom		certbot		giflib		libavif		libssh2		nodebrew	protobuf	tcl-tk
apr		composer	glib		libev		libtiff		oniguruma	pyenv		tidy-html5
apr-util	curl		gmp		libevent	libtool		openexr		python@3.10	unixodbc
argon2		curl-openssl	icu4c		libffi		libunistring	openldap	python@3.9	webp
aspell		dialog		imath		libidn		libvmaf		openssl@1.1	rbenv		xz
augeas		fontconfig	jansson		libidn2		libzip		pcre		readline	zstd
autoconf	freetds		jemalloc	libmetalink	lz4		pcre2		redis
bash-completion	freetype	jpeg		libnghttp2	m4		php		rtmpdump
brotli		gd		jpeg-turbo	libpng		mpdecimal	php@7.4		ruby-build
c-ares		gdbm		jpeg-xl		libpq		mysql		php@8.0		six
ca-certificates	gettext		krb5		libsodium	nghttp2		pkg-config	sqlite
pyenvインストールし直し

pyenvを一旦アンインストール

brew uninstall pyenv

再インストール

brew install pyenv

pythonをインストール

pyenv install 3.10.8

インストールされたことを確認

pyenv versions

結果

  system
  3.7.0
* 3.10.1 (set by /Users/bluir/.pyenv/version)
  3.10.8

pyenvでインストールしたバージョンを使うように設定する

pyenv global 3.10.8

もう一度pyenv versionsで確認

  system
  3.7.0
  3.10.1
* 3.10.8 (set by /Users/bluir/.pyenv/version)

この後Xcodeが見つからないなどというエラー(gyp:No Xcode or CLT version detected!)が出たがこれもインストールし直したところ(以下コマンドを順番に実行)npm run startはエラー出ずに上手くいった。

$ sudo rm -rf $(xcode-select -print-path)
$ sudo rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install
参考にしたサイト
homebrewでインストールしたpythonはアンインストールできなかった

Homevrewでインストールしたpythonをアンインストールしたかったが、

brew uninstall python3

以下のように証明書に使われている、、とかで削除ができない。ので一旦放置した。

Error: Refusing to uninstall /usr/local/Cellar/python@3.10/3.10.8
because it is required by certbot, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies python3
その他得た知識

HomebrewはmacOS用のパッケージ管理システム。非常に使い勝手が良く、macOSを利用する上では必須。pythonもhomebrewで直接インストールするのではなくpyenvでインストールすべきであった。ちなみにnode.jsはnodenvでバージョン管理した方が便利。(nodenvはhomebrewでインストールする。

コメント

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