管理不同版本的包的最佳实践是什么?我知道virtualenv,但我不确定它是否适合我的情况。
我的问题是:
假设我有两个项目(P1,P2),它们都使用一个小项目(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
发布于 2020-03-09 14:04:00
一般规则是不支持在单个Python环境中运行同一项目的多个版本。显然(就像软件中的任何其他类型的限制一样),有很多方法可以绕过它,但它们都需要大量的工作。
从我可以从这个特定的问题中收集到的信息来看,我相信,在尽可能少地修改项目当前状态的情况下,满足需求可能是一种适当的技术来规避这个限制。
1.带有git子模块
repository.
2.使用工具实现
中使用它。
管理不同版本的包的最佳实践是什么?我知道virtualenv,但我不确定它是否适合我的情况。
事实并非如此。例如,使用同一库的两个不同版本的虚拟环境可以帮助处理两个不同的项目。但这两个项目需要生活在两个不同的虚拟环境中。因此,您不能让一个项目同时从同一个库的两个不同版本导入。
发布于 2020-02-16 13:28:42
Virtualenv会起作用的,你为什么认为它行不通?
https://stackoverflow.com/questions/60247521
复制相似问题