python-barcode 使用pyinstaller打包后运行报错cannot open resource
问题描述:
使用pycharm可以正常生成条码,但是使用pyinstaller打包后,提示 cannot open resource
溯源:
barcode.writer 文件第91行
self.font_path = os.path.join(PATH,"fonts","DejaVuSansMono.ttf")
字体文件的路径是…\Lib\site-packages\barcode\fonts\DejaVuSansMono.ttf,打包后无法继续访问该路径,导致无法找到该字体文件,因而提示 cannot open resource
目前的解决方案:
- 修改barcode.writer 文件第91行(复制即可)
self.font_path = os.path.join("DejaVuSansMono.ttf") # self.font_path = os.path.join(PATH,"fonts","DejaVuSansMono.ttf")
- 使用 pyinstaller -D *.py打包
- 复制…\Lib\site-packages\barcode\fonts下的DejaVuSansMono.ttf文件到打包后的目录
- 问题解决
存在的问题:
修改barcode.writer文件后,使用pycharm运行代码时,会报错 cannot open resource,需要将DejaVuSansMono.ttf复制到相应的启动文件所有目录
DejaVuSansMono.ttf文件可替换为其他文件,修改barcode.writer 文件第91行引用的文件名即可