Python 许多项目中的公共库

Python 许多项目中的公共库,python,git,oop,virtualenv,pypi,Python,Git,Oop,Virtualenv,Pypi,我有几个项目,他们使用一些通用代码。我将此代码重构到公共库中,但随后出现了一个问题。如何管理此通用代码。我考虑了以下几种选择: 库作为文件系统中的软链接 库作为git子模块 使用pip/requirements.txt管理依赖项 这种解决方案的优缺点是什么?你还有别的建议吗?我应该选择哪一个?为什么 我在virtualenv中使用Git和python。选项1从长远来看会给您带来痛苦。任何非平凡的库在某个阶段都必须打破向后兼容性,并且您不希望必须更新应用程序A、B和C,因为应用程序D需要库中的一些

我有几个项目,他们使用一些通用代码。我将此代码重构到公共库中,但随后出现了一个问题。如何管理此通用代码。我考虑了以下几种选择:

  • 库作为文件系统中的软链接
  • 库作为git子模块
  • 使用pip/requirements.txt管理依赖项
  • 这种解决方案的优缺点是什么?你还有别的建议吗?我应该选择哪一个?为什么


    我在virtualenv中使用Git和python。

    选项1从长远来看会给您带来痛苦。任何非平凡的库在某个阶段都必须打破向后兼容性,并且您不希望必须更新应用程序A、B和C,因为应用程序D需要库中的一些新功能

    virtualenv的第三个选项非常方便。只需在项目中创建一个需求文件,将依赖项安装到virtualenv中,然后运行env。每个项目都可以有自己的依赖项和virtualenv,没有重叠。您也不必担心在系统的Python中安装冲突的模块。

    是的,但我不想把我的库推到cheese shop。我认为仅仅为了一个小小的库而开办自己的奶酪店是一件非常过分的事情。@yakxxx:你不需要在pypi中安装模块就可以在virtualenv中安装它们。