使用「__import__」從字串變數匯入模組
嘗試記錄matplotlib (MPL) 庫中的特定子模組時,可能會出現以下情況:有必要從字串導入這些子模組。然而,與標準導入語句相比,使用「__import__」函數可能會產生意想不到的結果。
問題:
使用「__import__」導入子模組(例如, __import__( 'matplotlib.text')) 未完全載入子模組的內容。透過比較從「__import__」和常規導入獲得的屬性列表,很明顯「__import__」包含來自 matplotlib 的基本定義以及無關元素,但缺少目標子模組中的關鍵類別。
解決方案:
要使用「__import__」從字串載入子模組,請指定一個空列表為第二個參數(fromlist):
import matplotlib.text as text x = dir(text) i = __import__('matplotlib.text', fromlist='') y = dir(i)
此修改後的程式碼有效地載入所需的子模組,產生預期的屬性清單。
或者,在Python 版本3.1 或更高版本中,可以使用importlib module:
import importlib i = importlib.import_module("matplotlib.text") y = dir(i)
註解:
以上是為什麼 `__import__` 無法完全導入 Matplotlib 子模組,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!