2017年2月7日 星期二

Python : zero length field name in format

將一個可以在 Inkscape 0.92 正常執行的 Extension 放到 Inkscape 0.91 中卻出現以下的錯誤訊息:

comment = ";Image: {:.2f}x{:.2f} @ {:.2f},{:.2f}|".format(w,h,x,y) + file_id+"\n"
ValueError: zero length field name in format

因為兩個不同版本的 Inkscape 內建不同的版本的 Python,一個是 Python 2.7,另一個則是 Python 2.6 ,這又是改版以後產生的問題。

自 Python 2.7 以後,format 的格式可以不用指定參數的序號,例如:

{} {} {}

會自動對應 format 的參數一、參數二、參數三,但是這樣的格式在在舊版的 Python 2.6 中要改成:

{0} {1} {2}


所以將原來有錯的地方改為:

{0:.2f}x{1:.2f} @ {2:.2f},{3:.2f}|

錯誤訊息就消失了。




沒有留言:

張貼留言

 
© 2009. Design by Pocket