#はじめに
pyrealsense2をmacのpyenv,pipenv環境にインストールした際の備忘録。
基本のビルド方法は@comachiさんの記事を参考にさせていただきました。
Mac に pyrealsense2 をインストールする
#検証環境
macos 10.15.7
Intel® RealSense™ SDK 2.0 (v2.43.0)
pyenvとpipenv環境(Python3.7.7で作成)
#ビルド&インストール
librealsenseのソースは以下のようにgit cloneするか、公式サイトからDLします。
公式サイトではXcodeを使ったビルド方法が紹介されていますが、普通にmakeでもできるんですね。
今回は仮想環境をpython3.7.7で構築する前提で進めます。python3.7.7のバイナリは、/Users/xxxxxxxxx/.pyenv/versions/3.7.7/bin/python3 にあるとします(xxxxxxxxの部分は各自のユーザー名に置き換えてください)。
$ brew install libusb pkg-config
$ brew install homebrew/core/glfw3
$ brew install cmake
$ git clone https://github.com/IntelRealSense/librealsense.git
$ cd librealsense
$ mkdir build && cd build
$ cmake .. -DBUILD_EXAMPLES=true \
-DBUILD_WITH_OPENMP=false \
-DHWM_OVER_XU=false \
-DBUILD_PYTHON_BINDINGS=true \
-DPYTHON_EXECUTABLE:FILEPATH=/Users/xxxxxxxxx/.pyenv/versions/3.7.7/bin/python3 \
-G "Unix Makefiles"
$ make -j4
$ sudo make install
pyrealsense2のインストールパスを確認
$ find /usr -name pyrealsense*
....
....
/usr/local/lib/python3.9/site-packages/pyrealsense2
/usr/local/lib/python3.9/site-packages/pyrealsense2/pyrealsense2.2.43.0.cpython-37m-darwin.so
/usr/local/lib/python3.9/site-packages/pyrealsense2/pyrealsense2.2.43.cpython-37m-darwin.so
/usr/local/lib/python3.9/site-packages/pyrealsense2/pyrealsense2.cpython-37m-darwin.so
この辺は人によって違うと思われますが、私の場合、
/usr/local/lib/python3.9/site-packages/pyrealsense2
以下にインストールされていることがわかります。なお、見た感じpython3.7対象のバイナリが3.9のディレクトリ以下に生成されてしまっていますので、本来の3.9など別のpythonバージョンで使うときは都度ビルドしなおした方がよいでしょう。
#pipenv環境の構築
作業ディレクトリにpipenv環境を作成します。今回はpython 3.7.7で環境構築しています。
$ mkdir realsense-test
$ cd realsense-test
$ pyenv local 3.7.7
$ pipenv --python 3.7.7
#pipenv環境にpyrealsense2をコピーする
さて、最近のバージョンのlibrealsenseではインストールプロセスになにがしか問題があるようで、通常の環境でもpyrealsense2がすんなり動作しないケースがあるようです。特に今回仮想環境を使っているのでややこしさ倍増です。そこで美しくありませんが、ライブラリを作業ディレクトリにばくっとコピーして解決します。
さきほどのpyrealsense2ディレクトリ以下に生成された6つの.soファイルをすべて作業用ディレクトリにコピーしましょう。
importをしてpipeline()してエラーが出なければDone! うまくできていない場合pipeline()で落ちます。
$ cp /usr/local/lib/python3.9/site-packages/pyrealsense2/* .
$ pipenv run python3 -c "import pyrealsense2 as rs; rs.pipeline();"
librealsense/wrappers/python/examples/ 以下のサンプルファイルも実行してみましょう。
以上。