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", найдя каталог, который я поместил на рабочий стол.