无法安装最新版本的conda-forge软件包

时间:2020-07-09 02:17:28

标签: anaconda conda conda-forge

我维护着一个名为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)。

现在,位于https://anaconda.org/conda-forge/switch_modelconda-forge网站将最新版本标识为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版本来更新软件包,会有所不同吗?

1 个答案:

答案 0 :(得分:0)

当我写完这个问题时,默认情况下现在正在安装2.0.5.post2版本。因此,我可能只需要等到交付系统中发生某些事情。

即使实际上出现在anaconda.org上,软件包也可能需要花费一些时间(约1个小时)才能通过conda安装。

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

不确定在这里问什么

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

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

否,一般而言,最好尽可能地保留在conda-forge已经建立的基础架构中。