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

PyMuPDF报错:Document对象无loadPage属性AttributeError

问题背景
  • 运行环境:Ubuntu 21.10、Python 3
  • 业务目标:将扫描仪生成的PDF逐页转换为图片,供后续OCR识别使用
  • 初始核心代码:
import fitz
# read pdf file
pdf = fitz.open(file_path_name)
# load pdf page using index
page = pdf.loadPage(0)
  • 触发报错:AttributeError: 'Document' object has no attribute 'loadPage'
已尝试的修复操作

执行了以下命令完成依赖重装流程:

sudo pip uninstall PyMuPDF
sudo pip uninstall fitz
sudo apt autoremove
sudo apt autoclean
reboot
sudo pip install PyMuPDF

重装后PyMuPDF版本为1.20.0,安装日志如下:

Collecting PyMuPDF
  Using cached PyMuPDF-1.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.9 MB)
Installing collected packages: PyMuPDF
Successfully installed PyMuPDF-1.20.0

重装完成后原有报错仍然存在。

问题根因

PyMuPDF(即导入时的fitz库)从1.19.0版本开始,移除了所有驼峰命名的旧版API,统一改用Python社区规范的蛇形命名方法。代码中调用的loadPage()是1.18.x及更早版本的旧接口,1.19.0之后的版本不存在这个方法,问题和安装流程、系统环境没有关系,因此重装依赖无法解决问题。

解决方案

二选一即可:

  1. 推荐方案:修改代码适配新版API
    把旧的驼峰命名方法替换为对应的蛇形命名方法即可,针对转图片做OCR的需求,可直接参考以下适配完成的代码:

    import fitz
    
    pdf = fitz.open(file_path_name)
    # 替换旧版loadPage为load_page
    page = pdf.load_page(0)
    # 设置300DPI缩放,匹配OCR识别的清晰度要求
    zoom_factor = 300 / 72
    transform_matrix = fitz.Matrix(zoom_factor, zoom_factor)
    # 替换旧版getPixmap为get_pixmap
    page_pixmap = page.get_pixmap(matrix=transform_matrix)
    # 保存为PNG图片供后续OCR调用
    page_pixmap.save("pdf_page_0.png")
    

    其他常用旧API对应替换规则:getPageTextList→get_page_textlist、insertImage→insert_image、savePDF→save,后续调用其他方法时注意统一用蛇形命名即可。

  2. 兼容方案:降级到支持旧API的版本
    如果不想改动原有旧代码,可以安装最后一个支持驼峰命名API的版本1.18.19,执行命令:

    pip install PyMuPDF==1.18.19
    

    该方案不推荐,旧版本缺少后续的功能更新、bug修复,对高版本系统的兼容性也更差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:54:21