Python库版本冲突

问题描述 投票:0回答:1

我有两个库,它们都使用类型扩展,但它们使用不同版本的类型扩展。这一冲突导致了一个问题,因为一个项目中需要这两个库。我怎样才能解决这个问题而不需要重写其中一个库?

我尝试替换一个库,但对于我的 Python 目标来说,只有一个可用。另一个 - aiogram 正是需要的,因为该项目是使用它编写的。

python pip virtualenv conflict aiogram
1个回答
0
投票

一种选择是安装一个版本,转到

venv_folder/Lib/site-packages
,找到该软件包,并将其文件夹名称和代码编辑为新名称,然后安装另一个版本。但是,您可能需要编辑其他库才能使用新的包名称,这可能就是您所说的“重写库”的意思。如果您想避免这种情况...

另一种选择是使用两个虚拟环境。这样你就可以在每个环境中安装一个包版本,以及相应的代码。它不漂亮,但它可以工作。

首先,像平常一样使用 venvs 设置两个文件夹,并将代码分成使用每个包版本的部分。 (您可能需要使用一些小函数,这些函数仅使用一个库执行一部分代码,与使用另一个库的代码分开。)

然后,要使用两个 venv 中的代码,请选择一个 venv(我们将其称为 VENV A)并将其格式化为 python 包(请参阅 [https://packaging.python.org/en/latest/tutorials/打包项目/#创建包文件)。完成此操作后,您可以使用 VENV B 中的 pip install -e path/to/VENV_A_package 将其作为模块安装在另一个 venv (

VENV B
) 中。

现在,您可以从使用另一个库的脚本运行代码或访问使用一个库的函数。

© www.soinside.com 2019 - 2024. All rights reserved.