Yapsy查看整个文件系统的插件

时间:2012-06-27 19:14:06

标签: python chilkat-xml

我有一个使用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文件查询的结果字符串。为什么会这样?

的一个例子
    xml.get_plugin_directory()

返回一个字符串:“C:\ Documents and Settings \ achilds”。我认为collectPlugins()方法应该检查我在setPluginPlaces(目录)中提供的目录列表。

为什么会在用户的文件系统中找到所有插件的任何想法(无论他们指定了哪个插件目录)?

谢谢

1 个答案:

答案 0 :(得分:0)

好吧,我已经找到了罪魁祸首。在仔细检查YAPSY PluginManager如何工作之后,似乎这就在我的最后。 PluginManager.locatePlugin()查看给定的目录,然后使用os.walk(给定路径)检查给定路径下的每个文件夹。

在不知不觉中,我将目录设置为“C:\ Documents and Settings \ achilds”,然后将我的插件放在桌面上,该桌面恰好位于:“C:\ Documents and Settings \ achilds \ Desktop” 。因此,PluginManager.locatePlugin()完成了它的设计,并搜索了“C:\ Documents and Settings \ achilds”中的所有目录,找到了我放在桌面上的目录。