安裝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相關文件了.
這裏寫圖片描述

發佈了44 篇原創文章 · 獲贊 65 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章