새소식

Dev record/ROS

[ROS] ImportError: dynamic module does not define module export function (PyInit__tf2)

  • -
반응형

문제 상황

ros 1 melodic 버전에서 python3 에서 사용하는 tf2를 사용하려고 할때 발생한다.

이는 catkin_make에서 발생하며 python3를 사용하는 환경에서 tf2 사용하는 부분만 따로 설치를 해주는 식으로 bulid를 해야한다.

해결 방안

python 3.8을 사용하는 경우 다음과 같은 방식으로 catkin_make를 진행한다.

sudo apt update
sudo apt install python3-catkin-pkg-modules python3-rospkg-modules python3-empy

mkdir -p ~/catkin_ws/src; cd ~/catkin_ws
catkin_make
source devel/setup.bash
wstool init
wstool set -y src/geometry2 --git https://github.com/ros/geometry2 -v 0.6.5
wstool up
rosdep install --from-paths src --ignore-src -y -r

catkin_make --cmake-args \
            -DCMAKE_BUILD_TYPE=Release \
            -DPYTHON_EXECUTABLE=/usr/bin/python3 \
            -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 \
            -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so

빌드가 완료되면 정상적으로 launch 파일 실행이 가능하다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.