特定のシェル環境内でMATLABが使いたいです。

조회 수: 2 (최근 30일)
Kaito Okada
Kaito Okada 2020년 10월 7일
댓글: Kojiro Saito 2020년 10월 27일
私は Parrot 社の ANAFI を操作するための計算ソフトとして MATLAB&Simulink を使用しています。
MathWorks のホームページを参考に通常の状態では Python と MATLAB を連携させることができたのですが、実際に ANAFI を飛行させるためのシェルスクリプト内では作成したプログラムを実行すると「ImportError: cannot import name 'matlab'」となってしまいます。
また、動かしている Linux の使用経験は浅いため MathWorks、Parrot のホームページを見てもいまいち分かりません。
使用しているバージョンは、R2020a (MATLAB)、Ubuntu 18.04 LTS、Python3.6 です。
どのようにすればこの問題を解決できますか。ご返答の方よろしくお願いします。
  댓글 수: 4
Kojiro Saito
Kojiro Saito 2020년 10월 8일
Python環境をアクティブにするというのは具体的にどのように行っていますでしょうか?
また、Pythonスクリプトの実行は、ANAFIのPython環境からpython xxx.py のように実行しているのでしょうか?
Kaito Okada
Kaito Okada 2020년 10월 8일
Parrot 社のホームページ ( https://developer.parrot.com/docs/olympe/installation.html ) を参考にしてもらいのですが、ANAFI を操作するには
$ source ~/code/parrot-groundsdk/./products/olympe/linux/env/shell
というコマンドを実行し
(plympe-python3) $
という環境でないといけないという条件があります。
また、Python スクリプトの実行は質問にも書いてある通り「python xxx.py」とターミナルに入力し実行しています。

댓글을 달려면 로그인하십시오.

채택된 답변

Kojiro Saito
Kojiro Saito 2020년 10월 19일
편집: Kojiro Saito 2020년 10월 27일
ParrotのSDKで使用するPython Olympe環境で、標準Pythonの環境で入れたパッケージが見られていないようです。
の「Manual dependency installation」のワークアラウンドにあるように、Olympe側のsetenvにmatlabのパッケージが含むディレクトリを追加してみてはいかがでしょうか?
例えばmatlabパッケージが/usr/local/lib/python3.6/dist-packages/matlabにインストールされている場合、Ubuntuのターミナルで
export PYTHONPATH=/usr/local/lib/python3.6/dist-packages/
としてから
echo "export PYTHONPATH=\$PYTHONPATH:~/code/parrot-groundsdk/out/olympe-linux/final/usr/lib/python/site-packages/" >> ~/code/parrot-groundsdk/products/olympe/linux/env/setenv
とするとOlymeのPython環境にPYTHONPATHのディレクトリが追加されます。
UPDATE
別の方法としては、plympe-python3環境でsys.path.appendを使ってカスタムの検索パスを追加するやり方もあります。
ターミナルで(plympe-python3) $に切り替わった後、下記のコマンドを実行するか、Pythonスクリプトに追加することで/usr/local/lib/python3.6/dist-packagesにあるmatlabパッケージを呼び出せるようになります。
import sys
sys.path.append('/usr/local/lib/python3.6/dist-packages')
import matlab
  댓글 수: 10
Kaito Okada
Kaito Okada 2020년 10월 27일
分かりました。ありがとうございました。
Kojiro Saito
Kojiro Saito 2020년 10월 27일
回答のほうもsys.path.appendを追加する方法を追加しておきました。よろしければ採用(Accept)ください。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 起動と終了에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!