我有一个庞大的Python 3.7+项目,目前正在将其拆分为多个可以单独安装的软件包。我最初的想法是拥有一个包含多个软件包的Git存储库,每个软件包都有自己的setup.py。但是,在Google上进行一些研究时,我发现有人建议每个软件包一个存储库:(例如Python - setuptools - working on two dependent packages (in a single repo?))。但是,没有人提供为什么他们喜欢这种结构的很好的解释。

因此,我的问题如下:

  • 在同一GitHub存储库上拥有多个软件包(每个软件包都有自己的setup.py)有什么含义?
  • 我要面对这种设置的问题吗?
  • 通用Python工具(文档生成器,pypi打包等)是否与这种设置兼容?
  • 是否有充分的理由偏爱一种设置而不是另一种设置?
  • 请记住,这不是基于意见的问题。我想知道两种方法中的任何一种是否存在技术问题或问题。

  • 此外,我知道(如果我错了,请纠正我),即使setup.py的GitHub URL不在存储库的根目录下,setuptools现在也允许从GitHub存储库安装依赖项。

    最佳答案

    我自己正在研究同一问题。 PyPa文档建议在https://github.com/pypa/sample-namespace-packages的“本地”子目录中描述的布局

    我发现以下所述的单个软件包结构非常有用,请参阅有关测试“已安装”版本的讨论。
    https://blog.ionelmc.ro/2014/05/25/python-packaging/#the-structure
    我认为这可以扩展到多个软件包。会在我了解更多信息时发布。

    09-11 11:02
    查看更多