环境:ubuntu 16.04, ROS Kinetic, conda 4.8.3, python3.7
思路
在python3环境下,直接使用tf会有如下报错(rospy可正常使用):
>>> import tf
Traceback (most recent call last):
File "", line 1, in
File "/opt/ros/kinetic/lib/python2.7/dist-packages/tf/__init__.py", line 28, in
from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationException
File "/opt/ros/kinetic/lib/python2.7/dist-packages/tf2_ros/__init__.py", line 38, in
from tf2_py import *
File "/opt/ros/kinetic/lib/python2.7/dist-packages/tf2_py/__init__.py", line 38, in
from ._tf2 import *
ImportError: dynamic module does not define module export function (PyInit__tf2)
解决:用conda环境下的python重新编译tf相关的catkin包。
步骤1:安装miniconda并配置
# 安装
sh Miniconda3-latest-Linux-x86