问题解决:使用ROS进行编译时报错: ‘ascii’ codec can’t decode byte 0xe6 in position 13: ordinal not in range(128)
问题描述
在使用roscore或者是编译rospackage时,新手可能会遇到如下错误:
Value error: 'ascii' codec can't decode byte 0xe6 in position 14: ordinal not in range(128)
The traceback for the exception was written to the log file
很多人会直接进行google或者百度错误问题,然而却找不到合适的答案。其实我们静下心来仔细分析就可以明白,这个错误的原因是因为我们的当前目录中包含了中文字符,然而ROS的工作空间目录中是不允许有中文的,因此,我们只需要更改我们工作空间的名称或者将工作空间放到其他英文目录下即可。
解决办法
有两个方法解决:
1.把工作空间直接建到用户目录下,如果你是将现有工作空间移动到用户目录。
2.把中文目录修改为英文,方法见将Ubuntu 用户目录下的中文目录修改为英文,同样,记得修改~/.bashrc中的环境变量
注意
修改完后,还要修改几处才能运行:
- ~/.bashrc中的环境变量,把你ROS工作空间目录的中文改成英文。
- 把你ROS工作空间build目录下的CMakeCache.txt文件删除。
- 把你ROS工作空间build目录下的Makefile文件中的中文改成英文,比如"桌面"替换为"desktop"。