前置き
Kaolin を Jetson Nano で動かしてみようと思いました。
ドキュメントに沿って進めてみましたが、ERROR: kaolin 0.1.0 requires pptk, which is not installed. など、パッケージの不足を示す複数のエラーが...
ほとんどは pip install 〇〇 で解決できましたが、 pptk に関しては解決できず、インストールに苦労したので、 pptk を Jetson Nano にインストールする方法をメモとして残します。
実行環境
$ uname -a
Linux JetsonNano 4.9.140-tegra #1 SMP PREEMPT Mon Dec 9 22:47:42 PST 2019 aarch64 aarch64 aarch64 GNU/Linux
初めに試したこと
pptk を pip でインストールする。
$ pip install pptk
ERROR: Could not find a version that satisfies the requirement pptk (from versions: none)
ERROR: No matching distribution found for pptk
上記のように、Jetson Nano Ubuntu18.04 ではインストールすることができませんでした。
また、PyPIからwhlファイルも探しましたが、Jetson Nano Ubuntu18.04 に該当するファイルは見つかりませんでした。
pptk の GitHub を確認
pptk の GitHub を確認したみたところ、インストール方法として pip 以外に、ソースから pptk をビルドする方法がありました。今回はこの方法を利用します。
pptk に必要な依存関係のインストール
以下に示す5つが必要です。
- QT
- TBB
- Eigen
- Python
- Numpy
CMakeCache.linux.txt を参考に QT、TBB、Eigen のインストール方法をメモとして残します。なお、QT、TBB、Eigen それぞれのバージョンは、CMakeCache.linux.txt と一致させています。
また、後述する CmakeCache.txt を作成するための準備として、インストールしたファイルを格納するためのディレクトリを用意します。
$ cd
$ mkdir Sources && cd Sources
それでは、必要なファイルをインストールしていきます。
QT
$ sudo apt install qtbase5-dev qttools5-dev-tools qt5-default
TBB
$ wget wget https://github.com/oneapi-src/oneTBB/releases/download/2018_U1/tbb2018_20170919oss_lin.tgz
$ tar -xzvf tbb2018_20170919oss_lin.tgz
Eigen
$ wget http://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2
$ tar -xjvf 3.3.4.tar.bz2
$ mv eigen-eigen-5a0156e40feb/ eigen-3.3.4/
pptk のビルド
必要なファイルのインストールが完了したら、pptk のビルドを行います。
まず、 pptk を GitHub から クローンします。
$ cd
$ git clone https://github.com/heremaps/pptk.git temp
次に、ビルドするためのディレクトリを作成し、そのディレクトリ内に CmakeCache.txt を作成します。
$ cd temp
$ mkdir build && cd build
$ touch CMakeCache.txt
それでは、CMakeCache.linux.txt を参考に、CMakeCache.txt を記述します。
上記の手順で進めた場合、CMakeCache.txt は以下のようになります。
Numpy_INCLUDE_DIR:PATH は異なると思いますので、環境に合わせて変更して下さい。
Numpy_INCLUDE_DIR:PATH=/home/JetsonNano/.virtualenvs/py33d/lib/python3.6/site-packages/numpy/core/include/numpy
Eigen_INCLUDE_DIR:PATH=/home/JetsonNano/Sources/eigen-3.3.4
Qt5_DIR:PATH=/usr/lib/aarch64-linux-gnu/cmake/Qt5
TBB_INCLUDE_DIR:PATH=/home/JetsonNano/Sources/tbb2018_20170919oss/include
TBB_tbb_LIBRARY:FILEPATH=/home/JetsonNano/Sources/tbb2018_20170919oss/lib/intel64/gcc4.7/libtbb.so
TBB_tbb_RUNTIME:FILEPATH=/home/JetsonNano/Sources/tbb2018_20170919oss/lib/intel64/gcc4.7/libtbb.so
TBB_tbbmalloc_LIBRARY:FILEPATH=/home/JetsonNano/Sources/tbb2018_20170919oss/lib/intel64/gcc4.7/libtbbmalloc.so
TBB_tbbmalloc_RUNTIME:FILEPATH=/home/JetsonNano/Sources/tbb2018_20170919oss/lib/intel64/gcc4.7/libtbbmalloc.so
PPTK_PATCHELF:FILEPATH=/home/JetsonNano/Sources/install/bin/patchelf
CMakeCache.txt の作成後、以下を実行します。
$ cmake ~/temp/
cmake の 実行後、以下のようにディレクトリ pptk が生成されます。
$ tree -L 1 ~/temp/build
/home/JetsonNano/temp/build
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── licenses
├── Makefile
└── pptk
生成された pptk をコピーします。
$ cp -r pptk /home/JetsonNano/.virtualenvs/py33d/lib/python3.6/site-packages/
pptk の確認
最後に pptk がインストールされているか確認します。
$ python3
>>> import pptk
>>> import kaolin
>>>