Организовать библиотеку Python как плагины - PullRequest
0 голосов
/ 10 ноября 2009

Я хотел бы создать библиотеку, скажем, foolib, но чтобы разделить разные подпакеты, чтобы иметь barmodule, bazmodule, все в одном и том же основном пакете foolib. Другими словами, я хочу, чтобы клиентский код мог выполнять

import foolib.barmodule
import foolib.bazmodule

но распространять barmodule и bazmodule как два независимых объекта. Также замените модуль на пакет ... Модуль ba [rz] может быть полноценной библиотекой fukll со сложным содержимым.

Причина этого выбора разнообразна:

  • Я бы хотел, чтобы пользователь устанавливал только бармодуль, если ему это нужно.
  • Я бы хотел сохранить модули относительно независимыми и легкими.
  • но я бы хотел сохранить их в общем пространстве имен.

jQuery имеет похожую структуру с плагинами.

Реально ли это в python со стандартными настройками и процедурой установки?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2009

Возможно, вы ищете пакеты пространства имен . Смотри также PEP 382 .

0 голосов
/ 10 ноября 2009

Да, просто создайте каталог foolib, добавьте к нему __init__.py и сделайте каждый субмодуль .py файлом.

/foolib
    barmodule.py
    bazmodule.py

тогда вы можете импортировать их так:

from foolib import barmodule
barmodule.some_function()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...