ROS学习笔记-from ._tf2 import *出错问题的解决

2023-05-16

复现古月居教程中关于tf的一节,使用tf时提示错误。
 

File "/home/pangweijian/catkin_ws/src/learning_tf/scripts/turtle_tf_listener.py", line 11, 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)

从提示看应该是tf包在导入的时候发生错误。

在ros官网上专门有对这个问题的讨论,一致性的观点是这个问题是由于系统中的python版本混乱导致了。但是查看系统的python版本是python2.7,可能由于系统中存在多了python版本,导致rosrun在运行的时候调用了python导致出错。提出的解决方法是单独建立一个虚拟的python环境防止发生混乱。
参见官网论坛讨论连接为:https://answers.ros.org/question/342763/what-is-the-workflow-to-prevent-mixing-python27-and-python3-for-tf2/

经过一番折腾,发现一种简单的解决方法。既然系统的版本混乱了我直接指定使用对应版本不就行了??在py脚本中第一句中强制调用python2.7。如下所示:

#! /usr/bin/python2.7
# -*- coding utf-8 -*-


import roslib
roslib.load_manifest('learning_tf')
import rospy
import tf
import turtlesim.msg

运行后不再提示错误,但是这种方法只是临时性的,只能运行自己的脚本,如果运行别人提供的脚本则需要更改相应的脚本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习笔记-from ._tf2 import *出错问题的解决 的相关文章

随机推荐

  • 非常详细的范式讲解(1NF/2NF/3NF/BCNF)

    范式 范式在计算机方面运用广泛 xff0c 在计算机二级三级均有涉及到 xff0c 今天就来讲讲范式 要是能够认真的看完 xff0c 相信一定能够理解的 在讲范式之前 xff0c 我们先来了解有关范式的基本概念 xff0c 听懂了有利于后面
  • ubuntu18.04无法安装libesd0-dev完美解决办法

    ubuntu18 04无法安装libesd0 dev 解决办法 解决办法 span class token comment 在行尾添加如下一行的内容 span span class token function sudo span vim
  • SystemUI学习记录

    OS android 7 1 由于项目需要需要对SystemUI进行定制化 xff0c 需求比较紧急 xff0c 没有很深入的去了解其整体代码 xff0c 仅仅记录下我的用到修改记录如下 xff1a 目录中有 或者 由于在不同的系统环境拷贝
  • informer

    list watch机制 list watch有两部分组成 xff0c 分别是list和watch list非常好理解 xff0c 就是调用资源的list API罗列资源 xff0c 基于HTTP短链接实现 xff1b watch则是调用资
  • kubelet - container manager

    containerManager 负责 node 节点上运行的容器的配置信息 xff0c 如 cgroup cpu device xff1b pod的创建流程参考 xff1a http www tianfeiyu com p 61 2825
  • 理解TCP/IP网络通信原理

    为什么会有TCP IP协议 在世界上各地 xff0c 各种各样的电脑运行着各自不同的操作系统为大家服务 xff0c 这些电脑在表达同一种信息的时候所使用的方法是千差万别 就好像圣经中上帝打乱了各地人的口音 xff0c 让他们无法合作一样 计
  • python 正则表达式点号与'\n'符号的问题

    匹配除了制表符和换行符之外的所有字符 前面的元字符出现任意次 xff0c 含0 43 前面的元字符出现一次或多次 xff1f 非贪婪模式 re S可以匹配多行 S s 匹配所有字符 所以 可以使用 s S 取代 在Python中可以使用方法
  • virsh的使用与实例步骤安装虚拟机

    Libvirt 有两种控制方式 xff0c 命令行和图形界面 图形界面 xff1a 通过执行名 virt manager xff0c 启动 libvirt 的图形界面 xff0c 在图形界面下可以一步一步的创建虚拟机 xff0c 管理虚拟机
  • Jboss低版本项目热部署到Jboss7

    Jboss低版本项目热部署到Jboss7 1 Jboss7 新特性 1 1 构建在 Modular Service Container上 xff0c 充分地利用了多核处理器的能力 xff0c 并发 按需启动服务 xff0c 启动速度更快 占
  • devstack安装openstack

    devstack是一套用来给开发人员快速部署Openstack开发环境的脚本 xff0c 其实对于整个安装过程没有什么好说的 xff0c 因为脚本写的很完善 xff0c 全程无脑式安装也没什么大问题 xff0c 但是因为公司里的网络环境不给
  • RBAC vs ABAC

    K8s在1 3版本中发布了alpha版的基于角色的访问控制 xff08 Role based Access Control xff0c RBAC xff09 的授权模式 相对于基于属性的访问控制 xff08 Attribute based
  • Attach detach controller manager 流程

    一 xff1a 初始化 1 adc 调用 InitPlugins 初始化 volumeplugins 1 1 初始化 dynamicplugins Currentlyonly Flexvolume plugins are dynamical
  • 洗牌、发牌算法 (打乱扑克牌顺序)

    img alt src https img blog csdn net 20130504122806254 include lt stdio h gt include lt stdlib h gt include lt time h gt
  • X11,GTK,QT,GNOME的区别与联系(UI工具总结)

    1 X11是X Window System Protocol Version 11 xff08 RFC1013 xff09 xff0c 是X server和X client之间的通信协议 X server是xfree86 xorg驱动下的显
  • Metrics-server

    概述 从 v1 8 开始 xff0c 资源使用情况的监控可以通过 Metrics API的形式获取 xff0c 具体的组件为Metrics Server xff0c 用来替换之前的heapster xff0c heapster从1 11开始
  • ARM嵌入式开发板无法ping localhost的问题

    移植环境 红色粗字体字 为修改后内容 xff0c 蓝色粗体字 为特别注意内容 1 xff0c 开发板 xff1a 韦东山JZ2440 2 xff0c linux 版本 xff1a linux 3 4 2 3 xff0c 参考文献 xff1a
  • Ali-Wax使用和源码解析系列-Wax的集成和调试环境搭建

    那些多余的话 在ios平台的基础框架中 xff0c 代码的直接动态部署一直是一个无法解决的问题 xff0c 所以我们只能退而求其次 xff0c 通过建立脚本语言和OC的bridge来实现动态更新的目标 在这个方向上 xff0c wax lu
  • OneNote代码高亮

    向OneNote 2016安装NoteHighlight 下载 msi 文件 xff0c 下载链接 下载之前查看自己的电脑上安装的OneNote版本以及位数 32 64 查看方法 xff1a 文件 gt 选项 gt 关于OneNote 20
  • Android生物识别-----BiometricPrompt

    到了AndroidP xff0c FingerprintManager就正式退役了 xff0c 系统新增了BiometricPrompt接口 xff0c 从接口名字 39 生物识别 39 也能看出来 xff0c 今后的安全验证功能 xff0
  • ROS学习笔记-from ._tf2 import *出错问题的解决

    复现古月居教程中关于tf的一节 xff0c 使用tf时提示错误 File 34 home pangweijian catkin ws src learning tf scripts turtle tf listener py 34 line