Python и SEO

Динамический импорт модуля.

Нужно было реализовать что-то типа плагинов: есть скрипт, представляющий из себя основу, и набор модулей для этой основы, для разных сервисов. То есть появился новый сервис – написал модуль, закинул в папку к скрипту – всё работает. Делается это довольно просто с помощью функции __import__:

module = "common_module" // название файла модуля
dyn_module = __import__(module)
Class = dyn_module.Dyn_Class  // Dyn_Class - класс из модуля
 

Автор: kalombo

Май 21, 2011 в 5:59 пп

Категория Python

Ответы: 4 to 'Динамический импорт модуля.'

Подписаться на комментарии RSS or TrackBack to 'Динамический импорт модуля.'.

  1. …и ловим много лулзов, если имя совпадает с другим модулем из stdlib/site-packages/чем-либо-еще-из-sys.path. Для динамических импортов придумали специальный модуль: http://docs.python.org/library/imp.html

    DocQ

    21 Май 11 at 23:31

  2. Позвольте не согласиться.
    imp придумали скорее для работы с самим механизмом импорта. Например, при реализации своего import hook…
    imp загружает модули, но не делает их регистрации. Прощай, модуль-синглетон!

    __import__ — это именно импорт модуля. Правда, не очень удобный интерфейс. Попробуйте __import__(‘package.subpackage.module’) для примера.
    Удобный — в importlib. В 2.7 появился огрызок от этой библиотеки, содержащий importlib.import_module(name, package=None)

    Андрей Светлов

    25 Май 11 at 00:22

  3. есть решения для этого
    http://jenyay.net/Programming/PyPlugins
    http://habrahabr.ru/blogs/python/79513/

    сейчас переписываю проект, хочу там ввести систему плагинов для расширения. выбрал yapsy для этого
    http://yapsy.sourceforge.net/

    webninja

    25 Май 11 at 13:04

  4. Приходи снова общаться на форуме. Я ща сам активно питон изучаю Постоянно есть вопросы

    seocoder

    8 Июн 11 at 16:15

Комментировать

Перед отправкой формы:
Human test by Not Captcha