我们有一个不断增长的应用程序库,具体取决于一组常用的util模块。我们想:
我们目前“手动”执行此操作,将utils版本化为每个应用程序的一部分。这有其好处,但是反复修复越来越多的代码库中的错误也非常痛苦。
从好的方面来说,在工作流程方面处理起来非常简单 - util模块是每个应用程序的一部分,所以在这一方面没有开销。
我们还考虑(稍纵)使用文件系统链接或其他类似的东西(不能在OS之间移植)
我理解发布测试和破坏等的含义。这些问题比目前不匹配的工具更少。
答案 0 :(得分:3)
您可以利用Python路径(在查找要导入的模块时搜索的路径)。
因此,您可以为utils 创建不同的目录,并将其包含在与使用这些utils的项目不同的存储库中。然后在PYTHONPATH
中包含此存储库的路径。
这样,如果你编写import mymodule
,它最终会在包含utils的目录中找到mymodule
。所以,基本上,它的工作方式与标准Python模块类似。
通过这种方式,您将拥有一个用于utils的存储库(或者如果您愿意,可以单独用于每个util),以及用于其他项目的单独存储库,,无论您使用何种版本控制系统< /强>
答案 1 :(得分:1)
你在使用什么版本系统?如果您在 git 下,请查看submodules。在这种情况下的想法是,您将能够与utils保持一个独特的独立存储库,这些存储库将自动轮询到各个项目中。
我对 mercurial 没有直接经验,但我相信subrepositories是等效功能。
如果你是SVN ......等等......我希望不是! :)