gpt4 book ai didi

python - python包的版本管理

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:15 27 4
gpt4 key购买 nike

管理不同版本的软件包的最佳实践是什么?我了解 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使用:从 P3 导入一些内容

P4 还使用:

从 P3 导入一些内容

从 P1 导入 Something_else

最佳答案

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

根据我从这个特定问题中收集到的信息,我相信供应可能是一种规避此限制的合适技术,同时需要对项目当前状态进行尽可能少的修改。

<强>1。使用 git 子模块

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

<强>2。使用供应商工具

<小时/>

What is a best practice to manage a different versions of packages? I know about virtualenv but i am not sure it is suitable in my case.

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

关于python - python包的版本管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60247521/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com