【发布时间】:2020-01-13 21:58:09
【问题描述】:
我正在寻找与以下具有相同“包重定位”功能的 python 包管理器:
- maven-shade-plugin:
https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html
或
- gradle-shadow-plugin:
https://imperceptiblethoughts.com/shadow/configuration/relocation/
这对于任何具有版本冲突的 Diamond 包依赖项都很重要。我在哪里可以找到支持它的包管理器?
更新:如果仍然缺失,那么实现一个需要多少努力?
【问题讨论】:
-
python 的内部模块解析不包括模块名称中的版本,因此为正在运行的解释器更改同一包的不同版本之间的引用是开箱即用的。如果你确实在运行时通过侵入
sys.modules来强制它,你只需将目标移至“是否可以将两个不同版本的包安装到同一个 python env 中?”,答案是更强烈的不.如果您必须依赖某个库的奇怪版本的包,通常的解决方案是在其中提供它。这对你来说是一个选择吗?
标签: python python-3.x dependency-management package-managers python-packaging