Python 多项目构建

Python multi-project build

我正在将一个庞大的项目代码库拆分成几个较小的项目。我很难理解如何正确处理不同项目之间的依赖关系。

结构看起来有点像这样:

SCM_ROOT
|-- core
|   |-- src
|   `-- setup.py
|-- project1
|   |-- src
|   `-- setup.py
|-- project2
|   |-- src
|   `-- setup.py
`-- project3
    |-- src
    `-- setup.py

处理多包项目之间的依赖关系和设置开发环境的推荐方法是什么?我正在使用 pip、virtualenv 和 requirements.txt 文件。是否有任何工具可以让我从存储库中快速 bootstrap 我的环境?

使用像 Pybuilder 或 Pants 这样的构建工具不必要地使过程复杂化。我最终将其拆分为 svn 中的多个项目——每个项目都有自己的 trunk/tags/branches 目录。根据来自 here and here 的信息,使用 install_requires 和 requirements.txt 文件的组合来处理依赖关系。每个项目都有一个 fabfile 用于 运行 常见任务,如清理、构建、上传到 pypi 等。