我最近更新了PyMuPDF/fitz,因此更新了我的代码,使用它来更新我对fitz方法的使用,以匹配更新后的命名约定(请参见PyMuPDF > Deprecated Names)。
问题:当我调用一个我写的函数来使用fitz的Page.get_text()时,它有时作为一个属性以一个过时的名称存在,有时以一个更新的名称存在。无论哪种方式调用它,它都被导入到同一个脚本中,但是在一个版本中,第二个脚本导入导入fitz的脚本(通过from fitz import fitz
)。
我如何能够了解这些不同的属性集是在哪里引入的?
到目前为止为解开和调试所采取的步骤:我确认了PyMuPDF的版本在两种情况下是相同的via this StackOverflow answer:print(pkg_resources.get_distribution('PyMuPDF').version)
=〉1.21.0
我检查了对象的属性:print(dir(page))
这是一个基于我用来调用函数的脚本的一致模式。#1 w/ getText(已弃用):screenshot showing version number 1.21.0 and getText as an attribute
2 w/获取文本:screenshot showing version number 1.21.0 and get_text as an attribute
当前解决方案:
for page in doc:
try:
text += page.get_text()
except AttributeError:
text += page.getText()
1条答案
按热度按时间xggvc2p61#
有几种方法可以处理名称弃用的情况:
1.您可以在导入后立即执行
fitz.restore_aliases()
来启用旧名称。这将使旧名称再次可用(但也保留新名称)。1.你可以执行我们提供的一个实用程序。它可以作为参数(或单个Python文件)被指定文件夹。它将遍历源代码并用新文件名替换旧文件名。你也可以请求备份Python文件。文件夹将被递归处理。