首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python包的版本管理

python包的版本管理
EN

Stack Overflow用户
提问于 2020-02-16 10:25:21
回答 2查看 655关注 0票数 2

管理不同版本的包的最佳实践是什么?我知道virtualenv,但我不确定它是否适合我的情况。

我的问题是:

假设我有两个项目(P1,P2),它们都使用一个小项目(P3)。我使用git子模块,并将P3添加到P1和P2中。

然后我有了P4,它使用了上面描述的所有项目,P4需要最新版本的P3。

怎么处理呢?我希望P1,P2,P4使用他们自己的P3版本。但是当我构建P4时,我只有一个版本的P3。

项目结构:

所有项目都有这样的结构(有些文件省略了):

P4示例:

代码语言:javascript
复制
├── 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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-09 14:04:00

一般规则是不支持在单个Python环境中运行同一项目的多个版本。显然(就像软件中的任何其他类型的限制一样),有很多方法可以绕过它,但它们都需要大量的工作。

从我可以从这个特定的问题中收集到的信息来看,我相信,在尽可能少地修改项目当前状态的情况下,满足需求可能是一种适当的技术来规避这个限制。

1.带有git子模块

repository.

  • Use
  • 将P3保存在不同的git git子模块中,以便在主项目中拥有P3的两个不同副本。

2.使用工具实现

  • 将P3推广到自己的project中,使用完整的 tool,在主项目中有两个P3的不同副本。例如,参见pip如何在""

中使用它。

管理不同版本的包的最佳实践是什么?我知道virtualenv,但我不确定它是否适合我的情况。

事实并非如此。例如,使用同一库的两个不同版本的虚拟环境可以帮助处理两个不同的项目。但这两个项目需要生活在两个不同的虚拟环境中。因此,您不能让一个项目同时从同一个库的两个不同版本导入。

票数 -1
EN

Stack Overflow用户

发布于 2020-02-16 13:28:42

Virtualenv会起作用的,你为什么认为它行不通?

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60247521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档