确定插件加载顺序的最佳方法是什么?

2024-10-01 22:43:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个在运行时加载插件的系统。这些插件基本上是普通的python类,带有一些元数据,如版本(例如“1.0.1”)和一系列依赖项,这些依赖项可能如下所示(假设这是针对PluginA的):

["PluginB>=2.0","PluginC==1.1"]

对于版本和说明符,我使用模块“打包”。 我需要的是找出加载插件的顺序。 遗憾的是,我仍然必须使用Python2.7,因此我用

    imp.load_source

这就是目前的情况,我这里有两个主要问题: 主要的问题是,如果插件A需要B,那么A会在加载B之前尝试导入B。这当然会导致一个例外。 找出加载插件的顺序将有助于实现这一点。我对导入语句的工作原理了解不够

如果弄清楚订单有帮助:你会怎么做?我的想法是用插件(A、B、C、D…)作为节点,并使用依赖项作为边,构建某种图形或树

这应该行得通,但我不知道如何在不进行一个又一个循环的情况下链接节点。到目前为止,我尝试过的一切都是一团糟。 必须考虑说明符更令人困惑


Tags: 模块数据版本插件source节点顺序系统

热门问题