pyBarcode 使用 cx_Freeze 包裝成在沒有 python 環境下執行,
在產生圖檔的時候,出現IOError 的問題:
原因為 字型檔沒有在 cx_Freeze 包裝後的目錄中被找到:
[python installation directory]\Lib\site-packages\barcode\writer.py
PATH = os.path.dirname(os.path.abspath(__file__))
FONT = os.path.join(PATH, 'DejaVuSansMono.ttf')
然而
DejaVuSansMono.ttf 字型檔是附加在 pyBarcode 套件中,而路徑是使用絕對路徑,在經由 cx_Freeze 包裝後,自然就找不到。
MY Workaround:
使用 Windows 中的預設字型, 修改成:
#FONT = os.path.join(PATH, 'DejaVuSansMono.ttf')
FONT = 'arial.ttf'
這樣 Barcode image 上面的字型即為 Arial.
或是,也可以自行將
DejaVuSansMono.ttf 裝至系統。
(這樣需要執行程式的電腦都要安裝該字型…不建議啦)
沒有留言:
張貼留言