运行在Ubuntu上的ROS机器人操作系统最让我头疼的地方就是不支持python3,假如我有一段python3的代码,如何能能一键将其转换成python2脚本呢?
首先
pip3 install 3to2
网上有很多3to2的教程,但都是在windows环境下的,Ubuntu里稍有不同,但是也很简单。
无需找到3to2这个文件的目录,直接找到需要转换的python3文件目录,在终端输入
3to2 -w ~/python3_dir/
python3_dir是你的python3项目目录,这条命令会将目录下所有python3文件转换成python2脚本。
转换之后运行脚本可能会出现报错:
SyntaxError: Non-ASCII character '\xe8'
原因是使用了中文字符,可以在py文件的最前面加上这一句:
# coding:utf-8
另外需要提醒一下,在ros中使用python,往往需要在文件最开头加上:
#!/usr/bin/env python
来提醒ros应该使用python2,但是如果这样写的话
# coding:utf-8
#!/usr/bin/env python
就会导致rosrun的时候报错,正确的顺序应该是这样的:
#!/usr/bin/env python
# coding:utf-8