Mac(Catalina)のNode.js環境でtfjs_binding.nodeのエラーが出たときの対処

技術

どれだけ汎用性がある話かわからないしきちんと追いかけていないけど、一応メモがてら。

Mac上のNode.js でTensorflowを扱おうと思って npm install したらうまくいかなくてハマった話です。

環境

  • OS macOS Catalina (10.15.3)
  • Node.js v12.16.1 (nvm 0.35.2上)

エラーメッセージ

% node .
internal/modules/cjs/loader.js:985
throw err;
^

Error: Cannot find module '/PATH/TO/node_modules/@tensorflow/tfjs-node/lib/napi-v5/tfjs_binding.node'
Require stack:
- /PATH/TO/node_modules/@tensorflow/tfjs-node/dist/index.js
- /PATH/TO/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (/PATH/TO/node_modules/@tensorflow/tfjs-node/dist/index.js:46:16)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Module.require (internal/modules/cjs/loader.js:1044:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
    '/PATH/TO/node_modules/@tensorflow/tfjs-node/dist/index.js',
    '/PATH/TO/index.js'
]
}

気になったところ

@tensorflow/tfjs-node のインストール中に node-gyp で失敗したようなメッセージが出ている

調べたことと動くようになったやりかた

めちゃめちゃいろいろあたってみたけど、Node.jsはほぼ触るのが初めてなのでどうも勝手がわからない。上記の node-gyp のところはなんか怪しいなぁとは思っていて、下記の情報はちょっと気になってた。

Mac OS X Requires Xcode

If you do not have Xcode setup on your machine, please run the following commands:
$ xcode-select –install

https://github.com/tensorflow/tfjs/tree/master/tfjs-node

Upgrading to macOS Catalina may cause normal node-gyp installations to fail.

https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md

実は最初にこの情報を見たときは、「えーやだなーXcodeはインストールされてますよー」と思いつつも、念の為ということで最初のURLにある「xcode-select –install」は試してみたのだけど、これだと、うまく行っていない状態のままでも気づかないという罠が。で、2つめのURLに記載のある下記のコマンドで確認してみたら、コマンドラインツールが入っていないっぽかった。いやーん。

/usr/sbin/pkgutil --packages | grep CL

で、下記の情報を参考にして、Xcodeを一度削除してからコマンドラインツールをインストールした。

sudo rm -rf $(xcode-select -print-path)
xcode-select --install

Macでyarn installしたらnode-gypのエラーが出た - Qiita
どうした 既存のプロジェクトの手直しをしようとして、ローカルにnode_modulesを入れたかったので以下のコマンドを実行したらエラーが出た。 yarn //yarn install の短縮形 エラーは以下。 Comm...

これで無事起動するようになった。あーよかったよかった。

コメント

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