Yapsy смотрит на всю файловую систему для плагинов

У меня есть приложение, которое использует 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 ответ

Решение

Ну, я разобрался с преступником. Похоже, это было с моей стороны, после более тщательного изучения того, как работает YAPSY PluginManager. PluginManager.locatePlugin () просматривает данные каталоги, но затем использует os.walk(данные пути), чтобы проверить каждую папку под указанными путями.

Не зная, я установил каталог, чтобы посмотреть в "C:\Documents and Settings\achilds", а затем разместил мои плагины на рабочем столе, который находится в месте: "C:\Documents and Settings\achilds\Desktop". Итак, PluginManager.locatePlugin() сделал то, для чего он предназначен, и проверил все каталоги в "C:\Documents and Settings\achilds", найдя каталог, который я поместил на рабочий стол.

Другие вопросы по тегам