如何将Python模块拆分为PyPi包?

如何将Python模块拆分为PyPi包?,python,package,packaging,pypi,Python,Package,Packaging,Pypi,我已经编写了一个Python模块,希望其他人可以使用它。现在,它是嵌套在子文件夹中的一个大型模块: 幽灵 利用率 分机 颜色 我认为最好将这些子文件夹拆分为单独的包。但是,ext和color模块依赖于util 组织和发布这些模块的最佳方式是什么?我是否将它们拆分,并将它们命名为wraith.util、wraith.ext和wraith.color,比如tipfy?当人们安装ext或color时,我是否包括util 如果wraith.ext等本身没有用处,则无需拆分。你能想象有人会在不安装

我已经编写了一个Python模块,希望其他人可以使用它。现在,它是嵌套在子文件夹中的一个大型模块:

  • 幽灵
    • 利用率
    • 分机
    • 颜色
我认为最好将这些子文件夹拆分为单独的包。但是,ext和color模块依赖于util


组织和发布这些模块的最佳方式是什么?我是否将它们拆分,并将它们命名为wraith.util、wraith.ext和wraith.color,比如tipfy?当人们安装ext或color时,我是否包括util

如果wraith.ext等本身没有用处,则无需拆分。你能想象有人会在不安装wraith.color的情况下使用wrait.util吗

如果决定拆分,则需要在setup.py中设置install\u requires,它告诉setuptools等程序包依赖项。此外,您还需要设置名称空间\u包,告知wrait名称空间也将接收其他包

更多信息


子模块有多大?老实说,将其作为单个包分发可能是最简单的。只要你不是无缘无故地把MBs的数据放到人们的硬盘上,就没有人会关心一个或两个额外的模块。wraith.util是最有用的部分。ext和color取决于util。