我们有越来越多的应用程序库,这些应用程序依赖于一组通用的实用程序模块。我们希望:
- 在所有项目之间共享相同的实用程序代码库
- 允许从事任何项目的开发人员扩展(和修复!)utils
- 让开发人员使用起来相当简单(即不会对工作流程造成重大干扰)
- 跨平台(Macs/Win/Linux 上的开发者没有差异)
我们目前“手动”执行此操作,并将实用程序作为每个应用程序的一部分进行版本控制。这有它的好处,但在越来越多的代码库中重复修复错误也很痛苦。
从好的方面来说,在工作流方面处理起来非常简单 - util 模块是每个应用程序的一部分,因此在这一方面是零开销。
我们还考虑(短暂地)使用文件系统链接或类似的东西(不可在操作系统之间移植)
我了解有关发布测试和损坏等的影响。与目前不匹配的实用程序相比,这些都不是问题。
最佳答案
您可以利用 Python 路径(查找要导入的模块时搜索的路径)。
因此,您可以为实用程序创建不同的目录,并将其包含在与使用这些实用程序的项目不同的存储库中。然后在 PYTHONPATH
中包含此存储库的路径。
这样如果你写import mymodule
,它最终会在包含utils的目录中找到mymodule
。所以,基本上,它的工作方式与标准 Python 模块的工作方式类似。
这样,您将拥有一个用于实用程序的存储库(如果您愿意,也可以为每个实用程序单独存储),以及用于其他项目的单独存储库,无论您使用何种版本控制系统.
关于python - 在积极开发的应用程序之间共享 util 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8486942/