HaneCa

独り立ちへ向けた長い道

node-opencvのインストールエラーの対処方法

投稿日: 2017年9月4日 最終更新日: 2020年8月10日

macへnode-opencvをインストールするときにエラーが発生してインストールできなくなったので、それを解決する方法についてです。まず、次のようなエラーが表示されます。

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! opencv@6.0.0 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the opencv@6.0.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

インストール環境:

  • Mac OSX 10.12.6
  • Node.js: v8.4.0
  • OpenCV: v.2.4.13

まずハマったのは、OpenCVのインストールについてです。通常Homebrewを使ってインストールします。しかし、次のようにインストールすると、OpenCV3がインストールされてしまうようになりました。

# brew install opencv

現時点では、OpenCV2はopencv@2と名前が変更されているようです。そのため、次のコマンドを実行することで、OpenCV2がインストールされます。

# brew install opencv@2
(中略)
This formula is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/opencv@2/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/opencv@2/lib
    CPPFLAGS: -I/usr/local/opt/opencv@2/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/opencv@2/lib/pkgconfig


If you need Python to find bindings for this keg-only formula, run:
  echo /usr/local/opt/opencv@2/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv@2.pth
  mkdir -p /Users/xxx/Library/Python/2.7/lib/python/site-packages
  echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/xxx/Library/Python/2.7/lib/python/site-packages/homebrew.pth

最後にこのメッセージが表示された場合、OpenCV3がインストールされた状態で、OpenCV2がインストールされたことになります。また、このメッセージの中で、「PKG_CONFIG_PATH: /usr/local/opt/opencv@2/lib/pkgconfig」が重要になります。

node-opencvでは、pkg-configコマンドを使ってライブラリの場所を特定します。pkg-configは/usr/local/lib/pkgconfig/内の.pcファイルに書かれた各ライブラリのインストール場所の情報を参照します。

そこで、ログで表示された/usr/local/opt/opencv@2/lib/pkgconfig/ にあるopencv.pcファイルを/usr/local/lib/pkgconfig/ へコピーします。しかし、すでにOpenCV3 のopencv.pcが存在するため、そのままコピーしてしまうと上書きしてOpenCV3が使えなくなります。

そこで、次のようにします。

# sudo mv /usr/local/lib/pkgconfig/opencv.pc /usr/local/lib/pkgconfig/opencv3.pc
# sudo cp /usr/local/opt/opencv\@2/lib/pkgconfig/opencv.pc /usr/local/lib/pkgconfig/opencv.pc

これで、npm i node-opencv とすることで、無事にインストールできるようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください