管理不同版本的软件包的最佳实践是什么?我了解virtualenv,但是我不确定它是否适合我的情况。
考虑我有2个项目(P1,P2),它们都使用1个小项目(P3)。我使用git子模块,并将P3添加到P1和P2中。
然后我有了使用上述所有项目的P4,P4需要P3的最新版本。
怎么处理呢?我希望P1,P2,P4使用自己的P3版本。但是,当我构建P4时,我只有P3的一个版本。
所有项目都具有以下结构(省略了一些文件):
P4示例:
├── project_name (sources are here)
├── Makefile
├── submodules
│ └── P1
│ ├── submodules
│ │ └── P3
│ └── P2
│ ├── submodules
│ │ └── P3
│ └── P3
├── tests
└── setup.py
毫不奇怪,所有项目都以这种方式导入P3,因为它是唯一安装的一个版本。
因此,P1使用:from P3 import something
P4还使用:
from P3 import something
from P1 import something_else
一般规则是,不支持在单个Python环境中运行同一项目的多个版本。显然(就像软件中的其他限制一样),有很多方法可以解决,但是它们都需要大量的工作。
从我从这个特定问题可以收集到的信息来看,我相信卖方可以是一种规避此限制的合适技术,同时只需对项目的当前状态进行尽可能少的修改。
1.使用git子模块
2.使用供应商工具
管理不同版本的软件包的最佳实践是什么?我了解virtualenv,但是我不确定它是否适合我的情况。
它不是。虚拟环境可以帮助例如使用同一库的两个不同版本在两个不同的项目上工作。但是,这两个项目需要生活在两个不同的虚拟环境中。因此,您不可能有一个项目同时从同一库的两个不同版本中导入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句