python 版本错误导致的 roscore 问题
这几天快疯了,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 问题相关推荐
- cv_bridge与python版本问题导致编译错误error: return-statement with no value, in function returning ‘void*’ [-fpe
1.先说一下报错的过程(着急看解决过程的直接看第二点): 首先,在使用OpenCV时候,报错如下: [ERROR] [1663728000.010723, 6019.022000]: bad call ...
- easy-mock搭建过程中,利用docker-compose运行easy-mock注意事项,重点是mongo版本错误导致构建失败
该文默认你已了easy-mock,如果不了解,请移步easy-mock官网 . 该文意在强调利用docker-compose部署easymock时需要注意的问题. (该文默认读者已经懂得如何使用doc ...
- 用anacnda创建虚拟环境用不用指定python版本
用anaconda创建了python虚拟环境以后,想用pycharm指定这个python解释器. 首先,在我创建虚拟环境并未指定python版本的情况下,在使用anaconda prompt的命令 c ...
- 如何解决tmux下anaconda激活虚拟环境,python版本不对
项目场景: 服务器下利用tmux创建窗口,运行.py文件 问题描述: python版本不符合导致出现bug 利用conda激活虚拟环境后,调用python测试任然是2.7 按照其他博主使用source ...
- tensorflow版本问题导致的错误AttributeError: module ‘tensorflow‘ has no attribute ‘***‘
问题解决--AttributeError: module 'tensorflow' has no attribute 'placeholder' - yuanyuanWu11 - 博客园 tensor ...
- python安装ipython出现警告和错误怎么解决_ipython在最新python版本中出现事件循环问题...
问题:windows中最新python与ipython不兼容问题 环境:操作系统:win10 Python版本:3.8.2 Ipython版本:7.14.0 错误描述:安装完最新pyth ...
- 关于MAVROS版本不对导致的错误。md5sum
关于MAVROS版本不对导致的错误. 看到周围人有两次这样的了 之前说是MAVROS版本不对,可能升级了或者啥的,但总感觉不对劲. 搜了下 have datatype/md5sum 这个报错 看来不 ...
- jupyter python版本_Jupyter使用了错误的python版本
嗨,我已经安装了Python2.7,但没有删除2.6.我已经在路径中添加了2.7,也作为别名,但是当我使用jupyter笔记本时,它会尝试访问2.6> jupyter notebook Trac ...
- SyntaxError: Missing parentheses in call to 'print' 这个错误原因是Python版本问题
问题 print "www.baidu.com" Python2 print ("www.baidu.com") Python3 出 ...
最新文章
- 【TP5.0】tp5.0实现连接多个数据库,实现类似3.2M(‘table’,'prefix_','db_config2')的CURD操作...
- 微前端之single-spa
- HDOJ 2526 HDU 2526 浪漫手机 ACM 2526 IN HDU
- C# MD5,hmacSHA1
- Python机器学习:多项式回归与模型泛化005学习曲线
- Futter基础第12篇: 实现TabController定义顶部tab切换,并介绍生命周期函数
- 1500页,40万字,阿里淘系技术2020技术年货来了!
- FPGA之旅设计99例之第十八例----OV5640摄像头SCCB时序
- 掌握 JS 高级编程基础 - Reflect Metadata
- 锁子甲 bulid+sim
- 动漫,简史早期的日本动画
- Flash游戏教程:控制物体运动三法
- 【解决问题】修复虚拟机报错,写入文件时出错,请确认您有访问该目录的权限
- 机器学习:Logistic回归介绍
- 电蚊拍一天用30-50次?
- Windows 10强制升级惹众怒:纽约总检察长正在积极推动诉讼
- 操作系统,计算机网络,数据库刷题笔记11
- 换脸新潮流:BIGO风靡全球的人脸风格迁移技术
- 消息队列MQ/JMS/Kafka,你都了解吗?
- 图像质量评价学习笔记02:IQA模型性能评价指标(PLCC、SROCC、KROCC、RMSE)