最近在看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):
- 安裝python2.7的pip工具:sudo apt-get install python-pip
- 安裝future模塊: pip install –user future(如果出現permission問題,請用超級用戶權限sudo)
- 安裝TkInter:sudo apt-get install python-tk
- 下載mavlink:git clone https://github.com/mavlink/mavlink.git;git submodule update –init –recursive
- 設置 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相關文件了.