python软件包的版本管理

加里维克

管理不同版本的软件包的最佳实践是什么?我了解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子模块

  • P3保留在其他git存储库中。
  • 使用git子模块在主项目中具有P3的两个不同副本

2.使用供应商工具


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

它不是。虚拟环境可以帮助例如使用同一库的两个不同版本在两个不同的项目上工作。但是,这两个项目需要生活在两个不同的虚拟环境中。因此,您不可能有一个项目同时从同一库的两个不同版本中导入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正确使用Chocolatey(软件包更新/版本管理)

来自分类Dev

Debian 软件包的版本管理和自动更新

来自分类Dev

Emacs软件包版本

来自分类Dev

PPA软件包版本

来自分类Dev

PPA软件包版本

来自分类Dev

Python,Ubuntu:安装特定Python版本的PyPi软件包

来自分类Dev

为特定的python版本安装python软件包

来自分类Dev

python软件包是特定于版本的吗?

来自分类Dev

CentOS:Python和软件包的两个版本

来自分类Dev

Python-apt:安装特定版本的软件包

来自分类Dev

pip如何确定python软件包版本

来自分类Dev

pip如何确定python软件包版本

来自分类Dev

yum安装特定版本的python软件包

来自分类Dev

点安装与Python版本不兼容的软件包

来自分类Dev

对Python软件包使用日历版本控制

来自分类Dev

无法在错误的 Python 版本中安装软件包

来自分类Dev

如何管理气流dag之间的python软件包?

来自分类Dev

在Mac OS上管理python软件包

来自分类Dev

确定特定软件包的版本

来自分类Dev

比较R软件包的开发版本

来自分类Dev

发布NPM软件包的开发版本

来自分类Dev

在SublimeText中显示软件包版本

来自分类Dev

如何使用本地版本的软件包?

来自分类Dev

NuGet无法找到软件包的版本

来自分类Dev

我有哪个软件包版本?

来自分类Dev

OSGi软件包中的版本更改

来自分类Dev

谁更新pip软件包版本?

来自分类Dev

nuget软件包版本比较

来自分类Dev

自动增加R软件包的版本