LoginSignup
19
21

More than 5 years have passed since last update.

Pepperアプリにモジュールをいれる

Last updated at Posted at 2015-08-03

概要

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を記述するようにしてください。

Github
https://github.com/hws-hitorobo/custom_box

19
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
21