You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter GUI调用tkPDFViewer显示PDF报AttributeError无法加载

问题原因

报错由依赖版本不兼容导致:
tkPDFViewer 底层调用 PyMuPDF(别名fitz)的接口实现PDF页面转图像的逻辑,PyMuPDF 1.19.0 及以上版本移除了旧版驼峰命名的Page.getPixmap()方法,将接口统一调整为蛇形命名的Page.get_pixmap()。当前tkPDFViewer官方版本没有跟进这个API变更,安装新版PyMuPDF后调用旧接口就会触发'Page' object has no attribute 'getPixmap'的属性错误,PDF无法正常渲染。

解决方案

你可以任选以下一种方案修复:

方案1:降级PyMuPDF到兼容版本(无需修改代码,推荐)

直接在终端执行以下命令安装适配tkPDFViewer的PyMuPDF版本,安装完成后直接运行原有代码即可正常加载PDF:

pip install PyMuPDF==1.18.19

注:你原有代码中pdf_view设置的width、height参数为100,PDF显示区域会非常小,建议调整为和窗口匹配的尺寸(比如width=550、height=700)获得更好的显示效果。

方案2:修改库源码适配新版PyMuPDF(不想降级依赖时使用)

如果需要使用新版PyMuPDF的特性,可以手动修改tkPDFViewer的源码适配新接口:

  • 找到当前Python环境下tkPDFViewer的安装路径,打开目录内的tkPDFViewer.py文件
  • 定位到第46行add_img函数中的pix = page.getPixmap()语句
  • 将该行修改为pix = page.get_pixmap()
  • 保存文件后重新运行代码,即可正常渲染PDF。

内容的提问来源于stack exchange,提问作者hallo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:07:04