動態套件載入
PackageManager 可讓您在執行時動態匯入 Python 套件,並將其所有公開函式註冊到
執行器的事件字典中。
基本用法
from je_load_density import executor
# 載入套件並將其所有函式註冊為執行器動作
executor.execute_action([
["LD_add_package_to_executor", ["my_custom_package"]]
])
載入後,套件中的所有函式都可以透過名稱在 JSON 腳本或
executor.execute_action() 中呼叫。
運作原理
使用
importlib.util.find_spec()定位套件使用
importlib.import_module()匯入套件使用
inspect.getmembers()搭配isfunction找出套件中所有函式將每個函式註冊到執行器的
event_dict
Note
僅會註冊套件中的頂層函式。類別、常數和子模組不會自動加入。
PackageManager API
方法 |
說明 |
|---|---|
|
嘗試匯入套件。回傳模組或 ``None``(若未找到)。 |
|
匯入套件並將其所有函式註冊到執行器。 |
範例:使用自訂套件
假設您有一個自訂套件 my_utils,其中包含 compute() 函式:
from je_load_density import executor
# 註冊套件
executor.execute_action([
["LD_add_package_to_executor", ["my_utils"]]
])
# 現在可以透過名稱呼叫 compute()
executor.execute_action([
["compute", [42]]
])
在 JSON 腳本中使用
[
["LD_add_package_to_executor", ["my_utils"]],
["compute", [42]]
]