组织一个python库作为插件

时间:2009-11-10 04:45:57

标签: python module

我想创建一个库,比如foolib,但是为了保持不同的子包分离,所以要将barmodule,bazmodule都放在同一个foolib主包下。换句话说,我希望客户端代码能够执行

import foolib.barmodule
import foolib.bazmodule

但是将barmodule和bazmodule分配为两个独立的实体。用模块替换模块... ba [rz]模块可以是一个复杂内容的fukll fledged库。

这种选择背后的原因是多方面的:

  • 如果他需要,我希望用户只安装barmodule。
  • 我希望这些模块保持相对独立和轻量级。
  • 但我想将它们放在一个共同的命名空间下。

jQuery与插件有类似的结构。

使用标准的setuptools和安装程序在python中是否可行?

2 个答案:

答案 0 :(得分:3)

您可能正在寻找namespace packages。另请参阅PEP 382

答案 1 :(得分:0)

是的,只需创建一个foolib目录,向其添加__init__.py,并使每个子模块成为.py文件。

/foolib
    barmodule.py
    bazmodule.py

然后您可以像这样导入它们:

from foolib import barmodule
barmodule.some_function()