m0_70479479 2022-05-05 04:43 采纳率: 100%
浏览 238
已结题

生成条形码PyCharm 环境下可正常运行,利用Pyinstaller打包后系统报错OSError: cannot open resource,如何解决?(语言-python)

#报错信息
Exception in Tkinter callback
Traceback (most recent call last):
File "tkinter_init_.py", line 1921, in call
File "a1.py", line 29, in cz_cli
File "barcode\base.py", line 65, in save
File "barcode\codex.py", line 257, in render
File "barcode\base.py", line 105, in render
File "barcode\writer.py", line 227, in render
File "barcode\writer.py", line 372, in _paint_text
File "PIL\ImageFont.py", line 878, in truetype
File "PIL\ImageFont.py", line 875, in freetype
File "PIL\ImageFont.py", line 226, in init
OSError: cannot open resource
#报错代码
from pystrich.code128 import Code128Encoder
import openpyxl
import barcode
import os
from barcode.writer import ImageWriter
from openpyxl.drawing.image import Image
import tkinter
import winreg
#获取系统桌面路径
def get_desktop():
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
return winreg.QueryValueEx(key, "Desktop")[0]
Desktop_path=str(get_desktop())
wbb=openpyxl.Workbook()
wbb.create_sheet(title='打印',index=0)
wbb.save(Desktop_path+'/打印表.xlsx') # 保存
barcode.writer.FONT=os.path.join('AdobeGothicStd-Bold.otf')
def cz_cli():
#生成条形码保存为图片
bm='123456789'
tm = barcode.get_barcode_class('code128')
tmgs=tm(bm, writer=ImageWriter())
#条形码间距,文本与条码间距,文本尺寸,分辨率
tmgs.save(Desktop_path+'/code128',{'module_width':0.3,'text_distance':0.5,'font_size':20,'dpi':200})

#加载图片到EXCEL
wb = openpyxl.load_workbook(Desktop_path+'/打印表.xlsx')
ws = wb['打印']
img=Image(Desktop_path+'/code128.png')
ws.add_image(img,'B1')
wb.save(Desktop_path+'/打印表.xlsx')

dl_win = tkinter.Tk()
dl_win.title('登录窗口')
dl_win.geometry('%dx%d+%d+%d' % (300, 210, 100, 100))
cz_b = tkinter.Button(dl_win, text='生成', width=8, command=cz_cli)
cz_b.place(x=60, y=40)
dl_win.mainloop()

  • 写回答

3条回答 默认 最新

  • 溪风沐雪 2022-05-05 09:26
    关注

    我估计问题出在barcode.writer.FONT=os.path.join('AdobeGothicStd-Bold.otf')这一行,因为报错提示信息是关于字体的,而你使用的这个字体并不是系统默认自带的字体,所以要不换一个字体试试,要不就把这个字体文件也一起打包到exe里边去,不然的话即使在你电脑上能运行,换个电脑依然会出问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月13日
  • 已采纳回答 5月5日
  • 创建了问题 5月5日

悬赏问题

  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥15 小红薯封设备能解决的来
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'
  • ¥15 vue+element项目中多tag时,切换Tab时iframe套第三方html页面需要实现不刷新
  • ¥50 深度强化学习解决能源调度问题