本日はAzureKinectの調査枠です。
py-k4aを使ってPythonからAzureKinectを利用してみます。
今回はビルドとインストール手順を記事にします。
py-k4aはbrendandburnsさん(@brendandburns)が公開しているPythonモジュールです。
github.com
今回は Windows 環境の64bit版でのインストール手順をまとめます。
必要な環境
事前に以下のツールの環境のインストールが必要です。
・AzureKinectSDK
・Python
・Cコンパイラ(VC++)
それぞれ以下の記事に従ってインストールを実施します。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com
今回、筆者環境では AzureKinectSDK 1.3.0, Python 3.7.4, VisualStudio2017のCコンパイラを利用しています。
VisualStudioのインストールでは VC++ のコンポーネントをインストールする必要があります。
py-k4aのダウンロード
以下のページからpy-k4aのソースコードを取得します。
今回は Download ZIP でソースコードを取得しました。
github.com
ダウンロードした py-k4a-master.zip ファイルを展開します。
これで py-k4a のダウンロードは完了です。
Includeファイルのコピー
ダウンロードしたプログラムを Python でビルドするため、include ファイルの参照を追加します。
以下の k4a.h のヘッダファイルを含む k4a ディレクトリを Python 配下の include ディレクトリにコピーします。
・コピー元
C:\Program Files\Azure Kinect SDK v1.3.0\sdk\include\k4a
・コピー先
C:\Users\(ユーザ名)\AppData\Local\Programs\Python\Python37\include
Libファイルのコピー
次に lib ファイルを追加します。
以下の k4a.lib のライブラリファイルを Python 配下の lib ディレクトリにコピーします。
・コピー元
C:\Program Files\Azure Kinect SDK v1.3.0\sdk\windows-desktop\amd64\release\lib\k4a.lib
・コピー先
C:\Users\(ユーザ名)\AppData\Local\Programs\Python\Python37\libs
py-k4aのビルド
これで py-k4a のビルドの準備が整いました。
展開した py-k4a-master のディレクトリを開き、右クリックから[PowerShellウィンドウをここに開く]を実行します。
以下のコマンドを実行し、py-k4a のビルドを実行します。
python .\setup.py build
ビルドが成功すると、build ディレクトリが生成され、k4a.cp37-win_amd64.pyd ファイルが出力されます。
cp37-win_amd64 の部分はビルド環境の情報が反映されます。
py-k4aのインストール
出力された pyd ファイルを Python にインストールします。
インストールディレクトリを整理したいので、今回は以下のインストール作業を手動で行いました。
1.Python ディレクトリの Lib\site-packages 配下に py-k4a ディレクトリを作成する。
2.Lib\site-packages 配下に py-k4a ディレクトリへのパスを記述する py-k4a.pth ファイルを作成する。
3.py-k4a.pth ファイルに以下の通り、py-k4a ディレクトリへのパスを記述する。
py-k4a
4.py-k4a ディレクトリに k4a.cp37-win_amd64.pyd ファイルをコピーする。
5.py-k4a ディレクトリに以下の2つの *.dll ファイルをコピーする。
C:\Program Files\Azure Kinect SDK v1.3.0\sdk\windows-desktop\amd64\release\bin\k4a.dll C:\Program Files\Azure Kinect SDK v1.3.0\sdk\windows-desktop\amd64\release\bin\depthengine_2_0.dll
これで Python へのインストールは完了です。
動作確認
py-k4a を組み込んだ Python ディレクトリの python.exe を起動し、以下のコマンドを実行してみます。
import k4a print(k4a)
k4a.cp37-win_amd64.pyd の参照パスが表示されれば py-k4a のインポートに成功しています。
module 'k4a' from '(参照パス)\lib\site-packages\py-k4a\k4a.cp37-win_amd64.pyd'
次回は実際にツールを利用してみます。
bluebirdofoz.hatenablog.com
エラー対処
以下にいくつかのエラー対処のパターンを記載します。
error: command 'cl.exe' failed: No such file or directory
「python .\setup.py build」の実行時に以下のエラーが発生することがあります。
error: command 'cl.exe' failed: No such file or directory
Cコンパイラへのパスが通っていないことが原因です。
環境変数の[Path]にCコンパイラへのパスを手動で追加することで解消されることがあります。
例えば VisualStudio のCコンパイラ(32bit版)はデフォルトでは以下のディレクトリにインストールされます。
C:\Program Files (x86)\Microsoft Visual Studio\(バージョン)\(ライセンス)\VC\Tools\MSVC\(バージョン)\bin\Hostx86\x86\cl.exe