【已解决】ImportError: dynamic module does not define module export function (PyInit__tf2)

【ros问题记录】

问题描述

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

Traceback (most recent call last):
  File "/home/mandy/ross/racecar_ws/src/Map_construction-Navigation_simulation/racecar_gazebo/scripts/XL_controller_cmd.py", line 18, in <module>
    import tf
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf/__init__.py", line 30, in <module>
    from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationException
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/__init__.py", line 38, in <module>
    from tf2_py import *
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_py/__init__.py", line 38, in <module>
    from ._tf2 import *
ImportError: dynamic module does not define module export function (PyInit__tf2)

方法一主要参考:但貌似这博主是官网照抄的,这里根据实际情况进行修改

方法一是整个ros工作空间都在python3下编译工作

更新:我发现这个方法一点都不好用,因为ros melodic本来就是基于python2.7设计的,换到python3运行bug太多了,比如xacro:include会出现下面的问题。ArgException 是一个 Python 异常,xacro可能是一个基于 Python 的工具,所以我思考了许久觉得这个错误可能是因为python版本不兼容,而我也不会把底层源码改到兼容……所以还是老老实实用python2.7吧……


问题分析

所以回到最初,理清楚问题是什么,
参考1,方法一参考的博主的参考
参考2,ROS Me

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值