当前位置: 首页 > news >正文

ROS noetic view_frames TypeError: cannot use a string pattern on a bytes-like object

ROS noetic + Ubuntu20.04报错:

mc@ubun:~$ rosrun tf view_frames
Listening to /tf for 5.0 seconds
Done Listening
b'dot - graphviz version 2.43.0 (0)\n'
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/tf/view_frames", line 119, in <module>
    generate(dot_graph)
  File "/opt/ros/noetic/lib/tf/view_frames", line 89, in generate
    m = r.search(vstr)
TypeError: cannot use a string pattern on a bytes-like object

查了一下,search函数需要输入str类型数据,而vstr(有可能?)不是str类型,所以需要把

m = r.search(vstr)

改成,

m = r.search(str(vstr))

如下,

        try:
            vstr = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[1]
        except OSError as ex:
            print("Warning: Could not execute `dot -V`.  Is graphviz installed?")
            sys.exit(-1)
        v = distutils.version.StrictVersion('2.16')
        r = re.compile(".*version (\d+\.?\d*)")
        print(vstr)
        m = r.search(str(vstr)) 

不过同样官方的说法如下,

m = r.search(vstr)

改为,

m=r.search(vstr.decode('utf-8'))

我试了一下,两种都能给出正确的结果。

相关文章:

  • ROS noetic [turtle1_tf_broadcaster-4] process has died
  • Ubuntu下使用unzip或p7zip解压带密码的zip文件
  • libcurl: (51) SSL: no alternative certificate subject name
  • SSL和SSH和OpenSSH,OpenSSL有什么区别
  • Ubuntu18.04网络连接图标上显示问号
  • Ubuntu调用USB摄像头
  • ERROR: libcudnn_adv_infer.so.8 is not a symbolic link
  • ROS error: Could not find the GUI, install the ‘joint_state_publisher_gui‘ package
  • ROS error: cannot launch node of type [arbotix_python/arbotix_driver]: arbotix_python
  • ROS error: robot_voice/iat_publish/usr/bin/ld: 找不到 -lmsc
  • ROS fatal error: alsa/asoundlib.h: 没有那个文件或目录
  • ROS ERROR: cannot launch node of type [usb_cam/usb_cam_node]: usb_camROS path [0]=/opt/ros/m
  • ROS Error: Could NOT find move_base_msgs
  • ROS Error: [rospack] Error: package ‘map_server‘ not found
  • How to remove PPA repository on Ubuntu and Debian
  • 08.Android之View事件问题
  • CODING 缺陷管理功能正式开始公测
  • Docker: 容器互访的三种方式
  • ERLANG 网工修炼笔记 ---- UDP
  • happypack两次报错的问题
  • javascript 总结(常用工具类的封装)
  • Javascript基础之Array数组API
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • PHP那些事儿
  • SpringBoot几种定时任务的实现方式
  • Travix是如何部署应用程序到Kubernetes上的
  • 半理解系列--Promise的进化史
  • 从tcpdump抓包看TCP/IP协议
  • 高程读书笔记 第六章 面向对象程序设计
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 实习面试笔记
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 学习JavaScript数据结构与算法 — 树
  • 用 Swift 编写面向协议的视图
  • 用简单代码看卷积组块发展
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​Python 3 新特性:类型注解
  • (7)STL算法之交换赋值
  • (c语言)strcpy函数用法
  • (vue)页面文件上传获取:action地址
  • (力扣)1314.矩阵区域和
  • (推荐)叮当——中文语音对话机器人
  • (转)关于多人操作数据的处理策略
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .net 生成二级域名
  • .NET 药厂业务系统 CPU爆高分析
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .Net各种迷惑命名解释
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • [20170705]diff比较执行结果的内容.txt
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [2544]最短路 (两种算法)(HDU)