【问题标题】:Can't install recent version of conda-forge package无法安装最新版本的 conda-forge 软件包
【发布时间】:2020-10-29 13:07:44
【问题描述】:

我维护一个名为 switch_model 的 conda-forge 包。在我们上一个版本 (2.0.5) 之后,我们依赖的一个包进行了不兼容的更改。所以我正在尝试发布一个发布后,2.0.5.post2,它需要该软件包的旧版本。

我已经成功地在PyPi 上创建了发布后,我可以使用pip 成功安装。我还更新了我的 meta.yaml 的食谱并将其推送到 github (https://github.com/conda-forge/switch_model-feedstock/blob/master/recipe/meta.yaml)。

现在,conda-forge 网站https://anaconda.org/conda-forge/switch_model 将最新版本标识为2.0.5.post2。但是当我尝试使用conda install -c conda-forge switch_model 安装到我的计算机时,它说它将安装较旧的2.0.5 版本。如果我尝试conda install -c conda-forge switch_model=2.0.5.post2,我会收到一条找不到它的消息。但是,如果我使用conda install -c conda-forge/label/main switch_model,它会安装最新版本(2.0.5.post2)。

就目前而言,新版本在 conda-forge 上,但尝试安装我的包的人仍然会得到具有错误依赖项的旧版本,并且无法正常工作。

有人知道如何让conda 自动安装发布后的版本吗?我可能需要将switch_model-feedstock 存储库分叉到我在 github 上的个人帐户中,然后向 conda-forge 帐户发出拉取请求。但是我不确定这是否会有所作为(我认为我没有为原始 2.0.5 版本这样做),而且我不确定我将如何追溯,因为我已经推动了将新版本的meta.yaml 放入存储库的 conda-forge 版本中。

更新

当我写完这个问题时,2.0.5.post2 版本现在默认安装。所以我可能只需要等到交付系统发生某些事情。所以我现在的问题是,我可以做些什么来测试新版本的软件包很快可供用户使用(例如,清除一些可用版本的缓存)?如果我通过来自另一个存储库的拉取请求而不是直接推送到 conda-forge 版本来更新包,会有什么不同吗?

【问题讨论】:

    标签: anaconda conda conda-forge


    【解决方案1】:

    当我写完这个问题时,现在默认安装的是 2.0.5.post2 版本。所以我可能只需要等到交付系统发生某些事情。

    包可能需要一些时间(约 1 小时)才能通过 conda 实际安装,即使它们出现在 anaconda.org 上也是如此。

    所以我现在的问题是,我可以做些什么来测试新版本的软件包很快可供用户使用(例如,清除一些可用版本的缓存)?

    不完全确定这里要问什么

    • 如果您要问是否可以强制用户更新他们的版本,不可以。
    • 如果您希望确保构建没有被破坏,您可以在构建过程中运行它的测试:https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#test-commands
    • 如果您担心的是它看似在线与 Anaconda 的服务器实际通过 conda 将其交付给用户之间的差异,则并非如此。一旦构建通过了 conda-forge 机器人所做的所有状态检查,以后用户无法使用它的原因几乎没有。

    如果我通过来自另一个存储库的拉取请求而不是直接推送到 conda-forge 版本来更新包,会有什么不同吗?

    不,一般情况下,最好尽可能留在conda-forge 已经建立的基础架构内。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 2022-01-17
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多