我有一个P
依赖于一个包的包A
。包A
取决于包B
和C==3
. 同时,PackageB
依赖于C==4
.
这会产生冲突,并且每次我 pip install packagesP
或A
.
现在,我知道我可以运行包P
,A
如果我将它们导入交互式终端或 Jupyter 笔记本并调用我需要的函数和类就可以了。但是, packageP
有一个命令行应用程序,只要您有从 package 继承的安装冲突,就会引发错误A
。
这个错误不是我提出的,它是由 Python 解释器单独提出的(我认为),因为与我P
用作库时相比,我没有调用任何新功能。事实上,我的 CLI 是一个由 包裹的类fire
,我可以在交互式会话中毫无问题地调用它。
错误跟踪显示pkg_resources.ContextualVersionConflict
在最后,我从不调用P
.
鉴于我只能控制 package 中发生的事情P
,有没有办法让它直接作为命令行应用程序工作?
我也很想知道幕后发生了什么。
顺便说一句,我总是 P
在新的 Conda 环境中安装。
对于包B
,只有一个版本可用,而不是多个版本。
谢谢!