Kanazawanaoaki / jsk_learning_utils

4 stars 1 forks source link

Install pythonlib as submodule of jsk_learning_utils #5

Closed HiroIshida closed 2 years ago

HiroIshida commented 2 years ago

これを追加すると, pymodule以下においたpython module (hogehoge.py とか __init__,pyを含むフォルダ) を jsk_learning_utilsのサブディレクトリとして呼び出せるようになります.

とりあえず, example_module.py というのをサンプルとしてpythonlib以下においています.

本PRを適用後catkin buildをすれば, 以下のコードがカレントディレクトリ非依存で呼び出せるようになります. ためしに, ホームディレクトリとかでやってみてもらいたいです.

from jsk_learning_utils.example_module import print_hello
print_hello()

補足

ros のスタンダードは catkin_python_setup() というcmakeの関数を呼ぶのですが, これだと実行時にsys.path.appendするため, この方法だとmypyやLSPなど静的解析ツールを多様する開発方法は使えなくなってしまいます(この実装は10年ほど前のものですし..). そこで, pythonlib以下のモジュ0るのシンボリックリンクを"catkin build時"に catkin_ws/devel/.private/jsk_learning_utils/lib/python3/dist_packages/jsk_learning_utils 以下に作成することで, 静的解析ツール/自動補完を使いやすくしました.