我该如何将Python模块拆分成PyPi包?

5 投票
1 回答
991 浏览
提问于 2025-04-17 02:58

我写了一个Python模块,想让其他人也能使用。目前这个模块很大,里面有几个子文件夹:

  • wraith
    • util
    • ext
    • color

我觉得把这些子文件夹分开成不同的包会更好。tipfy项目就是这么做的。不过,extcolor模块是依赖于util的。

那么,组织和发布这些模块的最佳方式是什么呢?我应该把它们分开,命名为wraith.utilwraith.extwraith.color,就像tipfy那样吗?在用户安装extcolor时,是否也要包含util

1 个回答

1

如果像wraith.ext这样的模块本身没有什么用,那就没必要把它们拆分开。你能想象有人会在没有安装wraith.color的情况下使用wraith.util吗?

如果你决定要拆分这些模块,你需要在setup.py文件中设置install_requires,这个设置会告诉setuptools等工具哪些是这个包需要的依赖。此外,你还需要设置namespace_packages,这表示这个命名空间将会包含其他的包。

更多信息

撰写回答