技術

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

https://qiita.com/hppRC/items/a01e33a5c890f7b2c125

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

関連記事

  1. Raspberry Pi

    Raspberry Pi 2 インストールメモ

    サバフェス2016でラズパイ2を頂いたので、明日からイロイロ遊…

  2. ガジェット

    リビング使いを前提にスマートスピーカー3機種を比較レビュー!

    我が家にスマートスピーカーが3機種揃ったので、色々比べてレビューしてみ…

  3. ガジェット

    iPhoneやAndroidでの通話内容を録音できる!テレホンピックアップTP8がオススメ

    突然ですが、プライベートで通話内容を保存しておく必要ができてしまいま…

  4. Raspberry Pi

    Raspberry pi 2でTSL2561を使ってpythonで照度を取得する

    サバフェス2016の課題をコリコリといじっております。いなばです。…

  5. 技術

    myThingsとIDCFチャンネルの使い方を理解してみる(MQTTで繋いでみる編)

    今回は、実際にMeshbluに繋いでみて、挙動を確認してみたいと思い…

  6. 技術

    IDCFクラウドにVPNでリモートアクセス ~ Pertino 編~

    先日書いた「Windows10でL2TP」は標準的なWindows…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


PAGE TOP