![](/img/trans.png)
[英]How can I access relative paths in Python 2.7 when imported by different modules
[英]How can I disentangle seemingly different imported Python modules under the same version number?
我最近更新了 PyMuPDF/fitz 並因此更新了我的代碼,使用它來更新我對 fitz 方法的使用以匹配更新的命名約定(請參閱PyMuPDF > Deprecated Names )。
問題:當我調用 function 時,我寫了使用 fitz 的 Page.get_text() 它有時作為一個屬性存在於已棄用的名稱下,有時在更新的名稱中。 無論哪種方式,它都是在同一個腳本中導入的,但是在一個版本中,第二個腳本導入了導入 fitz 的腳本(通過from fitz import fitz
)。
我如何才能了解引入這些不同集合的屬性的位置?
到目前為止為解開和調試所采取的步驟:我通過 StackOverflow 的回答確認了兩種情況下 PyMuPDF 的版本相同: print(pkg_resources.get_distribution('PyMuPDF').version)
=> 1.21.0
我檢查了 object 的屬性: print(dir(page))
這是一個一致的模式,基於我用來調用我的 function 的腳本。#1 w/getText(已棄用):顯示版本號 1.21.0 和 getText 作為屬性的屏幕截圖
#2 w/ get_text:屏幕截圖顯示版本號 1.21.0 和 get_text 作為屬性
當前解決方案:
for page in doc:
try:
text += page.get_text()
except AttributeError:
text += page.getText()
有幾種方法可以處理名稱棄用的情況:
您可以通過在導入后立即執行fitz.restore_aliases()
來啟用舊名稱。 這將使舊名稱再次可用(但也保留新名稱)。
您可以執行我們提供的實用程序。 可以將文件夾作為參數(或單個 Python 文件)。 它將遍歷源代碼並用新名稱替換舊名稱。 您還可以請求備份您的 Python 文件。 文件夾將被遞歸處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.