我有一个应用程序,它使用YAPSY作为我们的插件框架。该程序指定一个默认的插件目录,还允许用户指定一个目录(保存在XML文件中):
# Get the default plugin directory, using XML
path = os.path.expanduser('~')
xml = xml_controller.Controller(path + '\.cxvrc.xml')
xml.load_file()
xml.get_plugin_directory()
directory = ["plugins", xml.get_plugin_directory()]
# Load the plugins from the default plugin directory.
manager = PluginManager()
manager.setPluginPlaces(directory)
manager.setPluginInfoExtension('plugin')
manager.collectPlugins()
问题在于,无论用户的插件在文件系统的哪个位置,它都会加载它们。实际上,它忽略了XML文件查询的结果字符串。为什么会这样?什么的例子
^{pr2}$返回的是一个字符串:“C:\Documents and Settings\achilds”。我认为collectPlugins()方法应该检查我在setPluginPlaces(directory)中提供的目录列表。在
你知道为什么这会在用户的文件系统上找到所有插件(不管他们指定了哪个插件目录)?在
谢谢你
好吧,我已经找出了罪魁祸首。在仔细研究了YAPSY PluginManager是如何工作的之后,这似乎是我的目的。PluginManager.locatePlugin()查看给定的目录,然后使用手术室步行(给定路径)检查给定路径下的每个文件夹。在
不知不觉中,我将目录设置为在“C:\Documents and Settings\achilds”中查找,然后将插件放在桌面上的位置:“C:\Documents and Settings\achilds\desktop”。所以,PluginManager.locatePlugin()做了它的设计,搜索了“C:\Documents and Settings\achilds”中的所有目录,找到了我放在桌面上的目录。在
相关问题 更多 >
编程相关推荐