在积极开发的应用程序之间共享util模块



我们有一个不断增长的应用程序库,依赖于一组通用util模块。我们想:

    在所有项目之间共享相同的utils代码库
  1. 允许开发人员在任何项目上扩展(和修复)utils
  2. 让这对开发者来说使用起来相当简单(即不会对工作流程造成很大的干扰)
  3. 跨平台(mac/Win/Linux上没有差异)

我们目前是"手动"完成的,将utils版本作为每个应用程序的一部分。这有它的好处,但在越来越多的代码库中反复修复错误也是相当痛苦的。

好的方面是,在工作流方面处理起来非常简单- util模块是每个应用程序的一部分,所以在这方面没有任何开销。

我们还考虑过(短暂地)使用文件系统链接或其他类似的(在操作系统之间不可移植)

我理解关于发布测试和破坏的含义,等等。这些问题比当前不匹配的utils问题要小。

您可以利用Python路径(查找要导入的模块时搜索的路径)。

因此,您可以为utils创建不同的目录,并将其包含在与使用这些utils的项目不同的存储库中。然后在PYTHONPATH中包含此存储库的路径。

这样,如果您写入import mymodule,它最终会在包含utils的目录中找到mymodule。因此,基本上,的工作方式与标准Python模块的工作方式相似。

这样,您将拥有一个utils存储库(或者每个util单独使用,如果您愿意),以及其他项目的单独的存储库,而不管您使用的是哪种版本控制系统

您使用的是什么版本控制系统?如果您在git下,请查看子模块。在这种情况下的想法是,您将能够保持一个唯一的,独立的库与utils,它将自动轮询到各个项目。

我没有使用mercurial的直接经验,但我相信子存储库具有相同的功能。

如果您在SVN下…等待……我希望不是!:)

最新更新