我有一个在运行时加载插件的系统。这些插件基本上是普通的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…)作为节点,并使用依赖项作为边,构建某种图形或树
这应该行得通,但我不知道如何在不进行一个又一个循环的情况下链接节点。到目前为止,我尝试过的一切都是一团糟。 必须考虑说明符更令人困惑
目前没有回答
相关问题 更多 >
编程相关推荐