Published on

Electronでtensorflowを使ったときの対象方法

Authors
  • avatar
    Name
    ssu
    Twitter

Eelectronでtensorflowをつかおうとしたときに、下記のようなエラーがでて、 その対処をしたときの方法を紹介します。

electronでtensorflowを使うとしたときに、下記のようなエラーがでました。

App threw an error during load Error: The Node.js native addon module (tfjs_binding.node) can not be found at path: /node_modules/@tensorflow/tfjs-node/lib/napi-v8/tfjs_binding.node. Please run command 'npm rebuild @tensorflow/tfjs-node --build-addon-from-source' to rebuild the native addon module.

このエラーが出た原因は、terminalで使っているnodeのバージョンと electronで使っているnodeのバージョンが違っているために起きていました。

そのため、まずelectronのバージョンをprocess.versionsを下記のようにmain.jsにおき確認しました。

//main.jsの中身 const { app, BrowserWindow, ipcMain } = require( 'electron' ); const { dialog } = require('electron') console.log(process.versions) .... ...

結果を見てみると、electronではnode16.5.0を使っています。

➜  electron-example yarn run start
yarn run v1.22.10
$ electron .
{
  node: '16.5.0',
  v8: '9.4.146.16-electron.0',
  uv: '1.41.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.17.1',
  modules: '98',
  nghttp2: '1.42.0',
  napi: '8',
  llhttp: '6.0.2',
  openssl: '1.1.1',
  icu: '69.1',
  unicode: '13.0',
  electron: '15.1.1',
  chrome: '94.0.4606.61'
}

そこで、node 16.5.0を使えるようにしたら、うごきました。 nodeの任意のバージョンを入れるのは、nodenvを用いて、かきのようにやりました。

nodenv install 16.5.0

そして、

nodev local 16.5.0

nodenvで新しいバージョンをインストールする方法

参考: I was using a different node.js version that Electron was. so I installed node.js version is the same as the version of Electron is using (12.16.3) and that solved the problem