在anaconda中安装某个软件包的两个版本



我有以下问题:

我想通过conda安装的一个包需要另一个包的特定版本。但是,我想安装第二个软件包的更新版本。

具体来说,包energysim 2.1.5需要包fmpy 0.2.14,当我试图安装更新版本的fmpy时,我遇到错误:

ERROR: energysim 2.1.5 has requirement fmpy==0.2.14, but you'll have fmpy 0.3.0 which is incompatible.

有可能发生这样的事情吗?

在我的回答中,我假设以下情况:

  • 您想要安装packageA,它需要packageB==v1
  • 您还希望安装版本为v2的软件包B

您的目标:安装版本为v1v2的软件包B,使成为可能

我不知道有什么办法可以做到这一点。我也不认为这在技术上可行。假设您在代码中执行import packageB。应该导入哪个版本?python怎么知道packageA完成的import packageB应该是v1,而您完成的import packageB应该是v2?

我看到这些选项:

  1. 不使用packageA,这样您就可以拥有所需版本的packageB
  2. 如果可能的话,有一个包A和包B的环境,另一个只包含所需版本的包B
  3. 分叉packageA并创建自己的自定义版本,该版本可与所需的packageB版本一起使用

难道你就不能做到:

conda install packageB==2.0.0
conda install packageA

energysim被固定[1]以使用fmpy0.2.14,没有其他版本(旧版本或更新版本(。看起来这是有意为之[2];维护人员可能有充分的理由强制使用这个pin。pip不会因为这个引脚而让你安装0.3。

我会通过GitHub问题联系他们,询问他们的软件包是否与新版本兼容。看起来fmpy0.2.14大约有一年半的历史了。它可能与0.3.x配合使用,但IMHO应在使用前进行测试并发布。

  1. https://github.com/dgusain1/energysim/blob/07282257073058119664f9a5e8fd4300e138a64d/setup.py#L25-L29
  2. https://github.com/dgusain1/energysim/commit/f84dad3ab913b43eea3187da54c132319c23d1a7

最新更新