用于部署和/或分发的多个Python项目组织

用于部署和/或分发的多个Python项目组织,python,django,deployment,distutils,project-organization,Python,Django,Deployment,Distutils,Project Organization,我们有多个相互依赖的Python项目。在层次结构上,它们是这样组织的: P1 P2 ... Pn P1 P2 ... Pn 其中每一个都是Eclipse中的PyDev项目,它们在该环境中共存得很好。我们正在构建构建过程,以使我们能够以更系统的方式部署和分发这些。目前,我们只需压缩这些项目并将其复制以供部署 我需要一些关于如何使用distutils执行此任务的建议。我们的目标是创建一个使用distutils构建zip文件(或tar文件)的脚本,该distutils包含项目P1到Pn中所有必需的代码

我们有多个相互依赖的Python项目。在层次结构上,它们是这样组织的:

P1 P2 ... Pn P1 P2 ... Pn 其中每一个都是Eclipse中的PyDev项目,它们在该环境中共存得很好。我们正在构建构建过程,以使我们能够以更系统的方式部署和分发这些。目前,我们只需压缩这些项目并将其复制以供部署

我需要一些关于如何使用distutils执行此任务的建议。我们的目标是创建一个使用distutils构建zip文件(或tar文件)的脚本,该distutils包含项目P1到Pn中所有必需的代码和必需的数据/属性。然后,我们应该能够使用setup.py部署它,并让基于DJango的web层访问它

我的第一次尝试是创建一个项目,其唯一目的是构建部署构件。这将与项目P1到Pn平行,称为PBuild


这似乎合理吗?我对这种方法有一些问题。有人对如何实现这一点有其他想法吗?

关于应用程序的打包方式有不同的理念,但大多数Python开发人员坚持一种非常简单的方法。换句话说,你可以把最小的逻辑单元打包

因此,您的目标不应该是将所有内容都塞进一起,而是将每个离散的应用程序单独打包。在这里,我所说的应用程序并不一定是指每个Django应用程序,尽管将一些应用程序分解到它们自己的包中可能也是值得的


这实际上是关于可重用性的。任何可以在其他场景中发挥作用的片段都应该有自己的包。然后,您可以将它们设置为依赖于它们所需的任何其他包

谢谢你的反馈。因此,在上面的设置中,由于我们不能将单个项目分解成更小的单元,您是否建议将每个单元单独打包以进行部署?我不知道Eclipse项目是什么,但从distutils的角度来看,如果它有一个名称、一个版本和一组文件,那么它就是一个项目。编写setup.py并继续。