概要
Pepperに標準インストールされていないpythonモジュールを使いたい場合の手順
環境
- Mac OS X 10.10
- Choreagraphe 2.3.1.25
手順
pipを使ってモジュールをインストールします。
pipが入ってない場合はインストール
$ brew install pip
1. pipでダウンロードする
pip install [module] --no-install --no-buildが使えなくなってたので
-dオプションをつかう
2. ダウンロードしたファイルを解凍する
tarで落ちてくるのでコマンドとかで解凍
$ pip install [module] -d ./
3. プロジェクトにつっこむ
Choregrapheのプロジェクトファイルから
- マークでmoduleを追加する用のディレクトリを追加
ここではlibと名前をつけます。
4. アプリ内でモジュールのディレクトリをsys.pathに追加する
追加用のボックスを作成します。
import sys
import os
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
self.path = ALFrameManager.getBehaviorPath(self.behaviorId) + "/lib"
if self.path not in sys.path:
sys.path.append(self.path)
def onUnload(self):
sys.path.remove(self.path)
def onInput_onStart(self):
pass
GithubのボックスライブラリにAddLibというボックスを追加してます。
pythonではsys.pathにappendしたディレクトリにあるモジュールを
importできるようになるので先ほど追加したlibディレクトリのパスを追加しています。
AddLibボックスはrootにあるbehaviorように作ってあります。
また、Unload時にはパスを削除するようにしているので
rootに配置することをお勧めします。
5. ボックス内でimport
importする場合はボックスのclass外に書いてしまうと
起動時に走るロード処理でsys.path.appendが呼ばれる前にimportしようとしてしまうので
classのメソッド内にimportを記述するようにしてください。