安装Mavlink generator出现UnicodeEncodeError错误

最近在看mavlink,在执行官网的操作时出现了问题,问题如下:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1540, in __call__
    return self.func(*args)
  File "/home/fc/桌面/Mavlink/mavlink/mavgenerate.py", line 171, in generateHeaders
    if not tkinter.messagebox.askokcancel('Overwrite Headers?','The output directory \'{0}\' already exists. Headers may be overwritten if they already exist.'.format(self.out_value.get())):
UnicodeEncodeError: 'ascii' codec can't encode characters in position 9-10: ordinal not in range(128)

经过查找发现是python脚本文件的问题.首先说明下mavlink generator的安装步骤(我用的是python2.7):

  1. 安装python2.7的pip工具:sudo apt-get install python-pip
  2. 安装future模块: pip install –user future(如果出现permission问题,请用超级用户权限sudo)
  3. 安装TkInter:sudo apt-get install python-tk
  4. 下载mavlink:git clone https://github.com/mavlink/mavlink.git;git submodule update –init –recursive
  5. 设置 PYTHONPATH:sudo gedit .bashrc;在最后加上export PYTHONPATH=your_path_to_mavlink_clone

这样就安装完成了,然后在mavlink文件夹下运行我们的脚本(具体见官网:mavlink generator):python -m mavgenerate,这时会产生如下界面:
这里写图片描述

但是如果我们运行时,发现相应的文件夹没有产生文件,终端报UnicodeEncodeError的错误时,我们需要设置mavgenerate.py这个python脚本的编码方式,在开头加上以下语句即可:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

这里写图片描述
这时就会发现我们的include文件夹下就产生了c语言模式的mavlink相关文件了.
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_28773183/article/details/79691803
今日推荐