这几天快疯了,ROS好多坑;提醒一下python的版本不要随意切换哈;我的python 从自带的python-2.7变成 python-3.6后出现很多的问题,其中一个就是 roscore问题; 问题如下:

Traceback (most recent call last):
File “/opt/ros/kinetic/bin/roscore”, line 36, in
from rosmaster.master_api import NUM_WORKERS
File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosmaster/init.py”, line 35, in
from .main import rosmaster_main
File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosmaster/main.py”, line 43, in
import rosmaster.master
File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosmaster/master.py”, line 47, in
import rosmaster.master_api
File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosmaster/master_api.py”, line 72, in
from rosmaster.util import xmlrpcapi
File “/opt/ros/kinetic/lib/python2.7/dist-packages/rosmaster/util.py”, line 48, in
from defusedxml.xmlrpc import monkey_patch
ImportError: No module named ‘defusedxml’

解决办法:切换到 python-2.7

方法一 、查看你PC  python的版本号

1:输入

ls /usr/bin/py

2:修改默认Python

        cd  /usr/bin/

        sudo rm/usr/ bin/python #删除原有的Python连接文件

        sudo ln - s / usr / bin / python3.5 python #建立指向Python3.X的连接

3:还原2.7版本

        cd / usr / bin /

        sudo rm / usr / bin / python #删除原有的Python连接文件

        sudo ln - s / usr / bin / python2.7 python #建立指向Python2.7的连接

4:验证是否修改成功

推荐的方法二

方法二、使用update-alternatives 来为整个系统更改Python默认版本

1、列出python版本号sudo update-alternatives --list python

当使用sudo update-alternatives --list python来列出所有可用的python版本时提示:

error: no alternatives for python,或者 错误:无python 的候选项

那说明Python 的替代版本尚未被 update-alternatives 命令识别.想解决这个问题,

我们需要更新一下替代列表,将python2.7和python3.4放入其中,使用如下命令将python2.7和python3.5加入到python列表中:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2

--install选项使用了多个参数用于创建符号链接,最后一个参数指定了此选项的优先级,

如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中.

2、配置默认解释器s udo update-alternatives --config python

下面我选择编号1,选择python2.7 验证在终端输入python即可:

结果说明我们的python 切换成功

我们运行 roscore

如果 报错  Unable to contact my own server at

解决方法一

输入以下两步即可:

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

再次运行 roscore

hltt3838@hltt3838-G3-3579:~$ roscore
... logging to /home/hltt3838/.ros/log/0e3671d8-0aa2-11eb-ad42-a0a4c52fa62a/roslaunch-hltt3838-G3-3579-4084.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.started roslaunch server http://localhost:44709/
ros_comm version 1.14.9SUMMARY
========PARAMETERS* /rosdistro: melodic* /rosversion: 1.14.9NODESauto-starting new master
process[master]: started with pid [4094]
ROS_MASTER_URI=http://localhost:11311/setting /run_id to 0e3671d8-0aa2-11eb-ad42-a0a4c52fa62a
process[rosout-1]: started with pid [4105]
started core service [/rosout]

但所,我们打开一个终端,再次输入 roscore, 还是会出现这个问题:

解决方法二

终端输入 gedit ~/.bashrc 

在bashrc文件中更改以下为

export ROS_HOSTNAME=终端电脑名称即@与:之间部分)

export ROS_MASTER_URI=http://终端电脑名称 (即@与:之间部分:11311)

//  hltt3838@hltt3838-G3-3579:~$  =  @与:之间部分

重启电脑即可,输入roscore,出现警告,但所没有错误

解决方法三

sudo gedit ~/.bashrc

在文件末尾输入:

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

最后,一样,source一下就可以了

source ~/.bashrc

我用这个方法解决的

解决方法四

1、ifconfig                       #查看本机IP地址
2、gedit ~/.bashrc       #打开bashrc文件
3、在文件中讲ROS_HOSTNAME值改为自己的IP地址就OK。(192.168.20.×××是自己电脑查询的IP地址)
export ROS_MASTER_URI=http://192.168.20.×××:11311
export ROS_HOSTNAME=192.168.20.×××

4、source  ~/.bashrc    #老规矩,source一下环境变量

python 版本错误导致的 roscore 问题相关推荐

  1. cv_bridge与python版本问题导致编译错误error: return-statement with no value, in function returning ‘void*’ [-fpe

    1.先说一下报错的过程(着急看解决过程的直接看第二点): 首先,在使用OpenCV时候,报错如下: [ERROR] [1663728000.010723, 6019.022000]: bad call ...

  2. easy-mock搭建过程中,利用docker-compose运行easy-mock注意事项,重点是mongo版本错误导致构建失败

    该文默认你已了easy-mock,如果不了解,请移步easy-mock官网 . 该文意在强调利用docker-compose部署easymock时需要注意的问题. (该文默认读者已经懂得如何使用doc ...

  3. 用anacnda创建虚拟环境用不用指定python版本

    用anaconda创建了python虚拟环境以后,想用pycharm指定这个python解释器. 首先,在我创建虚拟环境并未指定python版本的情况下,在使用anaconda prompt的命令 c ...

  4. 如何解决tmux下anaconda激活虚拟环境,python版本不对

    项目场景: 服务器下利用tmux创建窗口,运行.py文件 问题描述: python版本不符合导致出现bug 利用conda激活虚拟环境后,调用python测试任然是2.7 按照其他博主使用source ...

  5. tensorflow版本问题导致的错误AttributeError: module ‘tensorflow‘ has no attribute ‘***‘

    问题解决--AttributeError: module 'tensorflow' has no attribute 'placeholder' - yuanyuanWu11 - 博客园 tensor ...

  6. python安装ipython出现警告和错误怎么解决_ipython在最新python版本中出现事件循环问题...

    问题:windows中最新python与ipython不兼容问题 环境:操作系统:win10     Python版本:3.8.2    Ipython版本:7.14.0 错误描述:安装完最新pyth ...

  7. 关于MAVROS版本不对导致的错误。md5sum

    关于MAVROS版本不对导致的错误. 看到周围人有两次这样的了 之前说是MAVROS版本不对,可能升级了或者啥的,但总感觉不对劲. 搜了下 have datatype/md5sum  这个报错 看来不 ...

  8. jupyter python版本_Jupyter使用了错误的python版本

    嗨,我已经安装了Python2.7,但没有删除2.6.我已经在路径中添加了2.7,也作为别名,但是当我使用jupyter笔记本时,它会尝试访问2.6> jupyter notebook Trac ...

  9. SyntaxError: Missing parentheses in call to 'print' 这个错误原因是Python版本问题

    问题 print "www.baidu.com"           Python2 print ("www.baidu.com")     Python3 出 ...

最新文章

  1. 【TP5.0】tp5.0实现连接多个数据库,实现类似3.2M(‘table’,'prefix_','db_config2')的CURD操作...
  2. 微前端之single-spa
  3. HDOJ 2526 HDU 2526 浪漫手机 ACM 2526 IN HDU
  4. C# MD5,hmacSHA1
  5. Python机器学习:多项式回归与模型泛化005学习曲线
  6. Futter基础第12篇: 实现TabController定义顶部tab切换,并介绍生命周期函数
  7. 1500页,40万字,阿里淘系技术2020技术年货来了!
  8. FPGA之旅设计99例之第十八例----OV5640摄像头SCCB时序
  9. 掌握 JS 高级编程基础 - Reflect Metadata
  10. 锁子甲 bulid+sim
  11. 动漫,简史早期的日本动画
  12. Flash游戏教程:控制物体运动三法
  13. 【解决问题】修复虚拟机报错,写入文件时出错,请确认您有访问该目录的权限
  14. 机器学习:Logistic回归介绍
  15. 电蚊拍一天用30-50次?
  16. Windows 10强制升级惹众怒:纽约总检察长正在积极推动诉讼
  17. 操作系统,计算机网络,数据库刷题笔记11
  18. 换脸新潮流:BIGO风靡全球的人脸风格迁移技术
  19. 消息队列MQ/JMS/Kafka,你都了解吗?
  20. 图像质量评价学习笔记02:IQA模型性能评价指标(PLCC、SROCC、KROCC、RMSE)

热门文章

  1. PyCharm 安装 订制模板
  2. 西安天讯:怎样添加百度蜘蛛访问网站日志log日志
  3. 公司(视频 社交)项目分享
  4. 我的Java乱卷之路
  5. Matlab:合并来自各自变量的日期和时间
  6. java民生银行支付接口_民生付商户端开发手册和接口规范V1.0.0.doc
  7. hotspot源码角度看OOP之类属性的底层实现(一)
  8. win10任务栏透明—注册表方法【新增半透明】
  9. Shogun docker image中不能import shogun
  10. 在pythonnumpy中切片(slice)