2017-06-08 41 views
2

official Google tutorialの後にSSH経由でPepperロボットにGoogle音声APIをインストールしました。PepperのChoregraphe内でPythonモジュールをインポートできません

from google.cloud import speech 

これは働いている:私は、次のようにAPIをインポートファイルspeechTest.pyを作成し、それをテストするには

!ここまでは順調ですね。しかし問題はChoregrapheのPythonボックス内で同じことをしたいときに起こります。

[ERROR] behavior.box :createPythonModule:0 
_Behavior__lastUploadedChoregrapheBehaviorbehavior_11325017632:/GoogleSTT_7: 
User class evaluation failed with the error: 
<class 'pkg_resources.DistributionNotFound'> 
google-cloud-speech 

私は解決策を試しましたが、成功しませんでした。私はChoregrapheボックス内のPythonからsys.pathを印刷するとき、私は得る:それはGoogleのパッケージを見つける必要があることを示すだろう

[WARN ] behavior.box :onLoad:15 _Behavior__lastUploadedChoregrapheBehaviorbehavior_1811402208:/GoogleSTT_7: 
/usr/lib/python2.7/site-packages 
/usr/lib 
/home/nao/.local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg 
/usr/lib/python27.zip 
/usr/lib/python2.7 
/usr/lib/python2.7/plat-linux2 
/usr/lib/python2.7/lib-tk 
/usr/lib/python2.7/lib-old 
/usr/lib/python2.7/lib-dynload 
/home/nao/.local/lib/python2.7/site-packages 
/usr/lib/python2.7/site-packages/PIL 
/usr/lib/python2.7/site-packages/gst-0.10 
/usr/lib/python2.7/site-packages/gtk-2.0 
/usr/share/dialog/ 
/home/nao/.local/share/PackageManager/apps/dialog_lexicon/./ 
/home/nao/.local/share/PackageManager/apps/dialog_adjust_volume/dlg_adjust_volume/ 
/home/nao/.local/share/PackageManager/apps/dialog_adjust_volume/my_apps_topic/ 
/home/nao/.local/share/PackageManager/apps/dialog_applauncher/dlg_applauncher/ 
/home/nao/.local/share/PackageManager/apps/dialog_applauncher/dlg_suggest_app/ 
/home/nao/.local/share/PackageManager/apps/dialog_battery_capacity/dlg_battery_capacity/ 
/home/nao/.local/share/PackageManager/apps/dialog_battery_level/dlg_battery_level/ 
/home/nao/.local/share/PackageManager/apps/dialog_bleep_sounds/dlg_bleep_sounds/ 
/home/nao/.local/share/PackageManager/apps/dialog_can_you_repeat/dlg_can_you_repeat/ 
/home/nao/.local/share/PackageManager/apps/dialog_clock/dlg_clock/ 
/home/nao/.local/share/PackageManager/apps/dialog_engines/dlg_engines/ 
/home/nao/.local/share/PackageManager/apps/dialog_goodbye/dlg_goodbye/ 
/home/nao/.local/share/PackageManager/apps/dialog_hello/dlg_hello/ 
/home/nao/.local/share/PackageManager/apps/dialog_help/dlg_help/ 
/home/nao/.local/share/PackageManager/apps/dialog_how_are_you/dlg_how_are_you/ 
/home/nao/.local/share/PackageManager/apps/dialog_impossible_moves/dlg_impossible_moves/ 
/home/nao/.local/share/PackageManager/apps/dialog_internet_connection/dlg_internet_connection/ 
/home/nao/.local/share/PackageManager/apps/dialog_lexicon/skin_B2B/ 
/home/nao/.local/share/PackageManager/apps/dialog_lexicon/skin_tmp_tweak/ 
/home/nao/.local/share/PackageManager/apps/dialog_manage_events/dlg_manage_events/ 
/home/nao/.local/share/PackageManager/apps/dialog_move_arms/dlg_move_arms/ 
/home/nao/.local/share/PackageManager/apps/dialog_move_hands/dlg_move_hands/ 
/home/nao/.local/share/PackageManager/apps/dialog_move_head/dlg_move_head/ 
/home/nao/.local/share/PackageManager/apps/dialog_posture/dlg_posture_pepper/ 
/home/nao/.local/share/PackageManager/apps/dialog_posture/dlg_posture_nao/ 
/home/nao/.local/share/PackageManager/apps/dialog_reflex_engaged/dlg_reflex_engaged/ 
/home/nao/.local/share/PackageManager/apps/dialog_robot_characteristics/dlg_character/ 
/home/nao/.local/share/PackageManager/apps/dialog_robot_characteristics/dlg_personal_info/ 
/home/nao/.local/share/PackageManager/apps/dialog_robot_characteristics/dlg_humanoid/ 
/home/nao/.local/share/PackageManager/apps/dialog_robot_characteristics/dlg_interaction/ 
/home/nao/.local/share/PackageManager/apps/dialog_robot_origins/dlg_robot_origins/ 
/home/nao/.local/share/PackageManager/apps/dialog_robot_relationships/dlg_robot_relationships/ 
/home/nao/.local/share/PackageManager/apps/dialog_robots/dlg_robots/ 
/home/nao/.local/share/PackageManager/apps/dialog_robots/dlg_asimov/ 
/home/nao/.local/share/PackageManager/apps/dialog_robots/dlg_famous_robots/ 
/home/nao/.local/share/PackageManager/apps/dialog_say_something_else/dlg_say_something_else/ 
/home/nao/.local/share/PackageManager/apps/dialog_set_offset/dlg_set_offset/ 
/home/nao/.local/share/PackageManager/apps/dialog_shutdown/dlg_shutdown/ 
/home/nao/.local/share/PackageManager/apps/dialog_stop_talking/dlg_stop_talking/ 
/home/nao/.local/share/PackageManager/apps/dialog_store/dlg_ade/ 
/home/nao/.local/share/PackageManager/apps/dialog_switch_language/dlg_switch_language/ 
/home/nao/.local/share/PackageManager/apps/dialog_thank_you/dlg_thank_you/ 
/home/nao/.local/share/PackageManager/apps/dialog_touch/dlg_touch_head/ 
/home/nao/.local/share/PackageManager/apps/dialog_what_can_you_do/dlg_what_can_you_do/ 
/home/nao/.local/share/PackageManager/apps//dialog_reflex/reflex/ 
/home/nao/.local/lib/python2.7/site-packages/google/cloud/ 

。どうすればこの問題を解決できますか? ChoregrapheプロジェクトにGoogle Speech APIをどのようにインポートできるかわかりません。

編集:私はロボットのローカルPythonのファイルに出力sys.path、私はこの取得:

/var/persistent/home/nao 
/home/nao/.local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg 
/usr/lib/python27.zip 
/usr/lib/python2.7 
/usr/lib/python2.7/plat-linux2 
/usr/lib/python2.7/lib-tk 
/usr/lib/python2.7/lib-old 
/usr/lib/python2.7/lib-dynload 
/home/nao/.local/lib/python2.7/site-packages 
/usr/lib/python2.7/site-packages 
/usr/lib/python2.7/site-packages/PIL 
/usr/lib/python2.7/site-packages/gst-0.10 
/usr/lib/python2.7/site-packages/gtk-2.0 
+0

これは、シェルコマンドのpythonスクリプトからは動作しますが、chroregrapheからは機能しません。 1.それはあなたがPythonインタプリタを起動する場所から何があってもシェルコマンドから動作していますか? 2.パッケージをインストールしたことを教えてください。それで、sys.pathから確認できます。3.パッケージのインストール後にnaoqiを一度再起動しますか? .localに新しいフォルダを追加すると、naoqiインタプリタがリロードされる必要があります。幸運です... –

+0

こんにちは@AlexandreMazel、1)はい、別の場所でPythonスクリプトを実行できます。 2) 'pip show google-cloud-speech'を実行すると' Location:/ var/persistent/home/nao/.local/lib/python2.7/site-packages'となります。3)Pepperを何度も再起動しました。運。 私は、ローカルPythonファイル(これははるかに短いと思われる)から 'sys.path'の出力を私の質問で追加しました。 – moffeltje

答えて

2

を私はデフォルトでインストールされていないプロジェクト内のpythonライブラリを使用するための最良の方法と考えていあなたのプロジェクトの中にそれを追加することです。 この方法では、パッケージがロボットにインストールされているときに依存関係がインストールされていることを必ず確認してください。それは理想的ではないかもしれませんが、より信頼性の高いソリューションです。

エラッタ: 実際にあなたのプロジェクト(pythonファイル)の内部にpythonでサービスを書いている場合は、依存関係をpythonファイルの隣に置くことで配送できます。 しかし、行動はそれらを使用することはできません。あなたは実際にそれをインストールする必要があります。

あなたができることは、Google APIを使用し、behaviour.xar内でPythonでサービスを作成することです。サービスを開始して、必要な処理を行い、終了時にサービスを停止します。 (理想的には、動作が停止したときにサービスが停止することがあります)

関連する問題