我有一个在运行时加载插件的系统。这些插件基本上是普通的python类,带有一些元数据,例如Version(例如“ 1.0.1”)和一系列看起来像这样的依赖项(假设这是针对PluginA):
["PluginB>=2.0","PluginC==1.1"]
对于版本和说明符,我使用模块“ packaging”。 我需要弄清楚加载插件的顺序。 遗憾的是,我仍然必须使用Python 2.7,因此我会用
加载类 imp.load_source
到目前为止,情况就是这样,我在这里有两个主要问题: 主要问题是,如果插件A需要B,则A将在加载B之前尝试导入B。那当然会引起例外。 会找出一个命令来帮助您加载插件。我对导入语句的工作方式还不了解...
如果弄清楚订单有帮助:您将如何做?我的想法是使用插件(A,B,C,D ....)作为节点构建某种图形或树,并使用依赖项作为边。
那辛辛苦苦的工作,但是我不知道如何在不进行循环循环的情况下链接节点。到目前为止,我尝试过的一切都变得一团糟。 必须考虑到说明符,这更加令人困惑