如何用Poetry在Python项目中同时使用同一包的两个版本?
用Poetry同时安装同一SDK的两个版本的实现方法
可以通过Poetry的包别名功能实现这一需求,具体操作如下:
修改
pyproject.toml的依赖配置,为不同版本的somesdk设置别名:[tool.poetry.dependencies] python = ">=3.9, <4" somesdk1 = { version = "0.1.0", name = "somesdk" } somesdk2 = { version = "0.2.0", name = "somesdk" }配置说明:
- 键名
somesdk1和somesdk2是自定义的导入别名 name字段指定实际安装的包名为somesdkversion字段分别对应需要的两个版本号
- 键名
执行安装命令完成依赖安装:
poetry install执行后,两个版本的
somesdk会以别名形式共存于虚拟环境中,不会出现版本冲突。在代码中直接按别名导入使用,与你提供的示例代码完全兼容:
import somesdk1 import somesdk2 def do_important_stuff(legacy=True): if legacy: somesdk1.do_it() else: somesdk2.do_it()
注意:该方式适用于大多数标准Python包,只要包的导入路径与包名一致、无硬编码内部包名引用,即可正常运行。
内容的提问来源于stack exchange,提问作者Enjoyted
相关产品推荐
相关产品推荐

