版本名称为“custom”的conda包

时间:2016-06-13 04:51:08

标签: packages anaconda conda

当我使用conda search anaconda时,我发现了一些 自定义 版本的软件包,如下所示:

Fetching package metadata: ....
anaconda                 1.6.0                np17py33_0  defaults
                          ...                    ...          ...
                         4.0.0               np110py35_0  defaults        
                         4.0.0               np110py34_0  defaults        
                         4.0.0               np110py27_0  defaults        
                         custom                   py35_0  defaults        
                         custom                   py34_0  defaults        
                         custom                   py27_0  defaults 

请注意,这三个自定义版本的pkgs显示在conda search anaconda结果的末尾,因此它们被conda视为最新版本,这也会影响{{1}结果(所以我必须使用conda install anaconda)。

然后conda install anaconda=4.0.0给出以下结果:

conda info anaconda=custom

但我不知道/记得如何以及为什么这三个软件包出现在这台电脑上,任何人都可以解释:

  1. 如何首先创建这些自定义版本的pkgs?
  2. 这些自定义版本pkgs如何/为何在Fetching package metadata: .... anaconda custom py35_0 ---------------------- file name : anaconda-custom-py35_0.tar.bz2 name : anaconda version : custom build number: 0 build string: py35_0 channel : defaults size : 3 KB date : 2016-03-14 license : BSD md5 : 47c237b38bfc175cb73aed8b8b33ade7 space : python installed environments: dependencies: python 3.5* anaconda custom py34_0 ---------------------- file name : anaconda-custom-py34_0.tar.bz2 name : anaconda version : custom build number: 0 build string: py34_0 channel : defaults size : 3 KB date : 2016-03-14 license : BSD md5 : 767a59923372d998b8c83fb16ac035a1 space : python installed environments: dependencies: python 3.4* anaconda custom py27_0 ---------------------- file name : anaconda-custom-py27_0.tar.bz2 name : anaconda version : custom build number: 0 build string: py27_0 channel : defaults size : 3 KB date : 2016-03-14 license : BSD md5 : 8288aef529d5a46d07bd84b4fcf4308a space : python installed environments: dependencies: python 2.7* 结果中显示?
  3. 如何删除这些自定义版本pkgs?

2 个答案:

答案 0 :(得分:12)

现有的任何软件包的custom版本(目前,在官方回购中)都适用于anaconda软件包。

这里有原因...... anaconda conda包是元数据包,这意味着它们是包的包 - 或者包没有真正的源代码而只带来一堆依赖。每个anaconda包都将每个子包固定到该子包的显式和特定版本。这是因为Continuum对这组软件包(以及那些特定版本)的互操作性进行了广泛的测试。

现在,在您通过Anaconda安装程序安装anaconda或安装Miniconda然后安装conda install anaconda之后,您就拥有了一组包含所有这些测试保证的软件包。没有理由你必须坚持这个锁定的包 - 你可以安装任何你想要的任何版本。您不再拥有版本可识别的Anaconda Distribution。您已自定义它。因此,当您运行conda list并且anaconda软件包的版本显示custom时,您就知道您已经从Anaconda Distribution中的一组软件包中脱离出来,这些软件包经过了强大的互操作性测试。

您的conda search anaconda查询只反映了如何实现此问题的工件。您将在该查询中注意到custom包首先列出,这意味着它们在比较版本时具有最低的排序顺序。因此,如果您在从特定固定的anaconda软件包中脱离后运行conda update anaconda,您将返回到Anaconda Distribution的编号版本。

答案 1 :(得分:0)

这实际上是一个部分答案。我不确定为什么这个版本确实存在。

(1)就custom的特定版本值而言,here似乎允许这样做:

  

version:string

     

包版本,可能不包含 - 。 Conda承认PEP 440。

所以这个anaconda包将以与任何其他版本相同的方式创建。我假设使用conda build

(2)它们显示在搜索结果中,因为它们存在于anaconda cloud中。这似乎是anaconda的正式发布版本。

至于为什么它存在,如果你下载一个实际的包文件(例如linux-64-anaconda-custom-py35_0.tar.bz2),展开它,并阅读info/index.json文件看起来这个包只会安装python和其他裸露的骨头需要。将此与anaconda版本4.0.0或其他版本进行比较,您将看到大量的软件包。我假设这个软件包存在,所以如果有人安装了自定义版本,他们只会获得简单的软件包,然后他们会通过conda install - 他们想要的任何其他软件包。

例如,在执行conda create -n anc-test anaconda=4.0.0conda create -n anc-test anaconda=custom时查看包。

编辑:刚看到那也在你的conda info中,所以你可能已经意识到了依赖关系的不同。

(3)我认为您不能从搜索调用中删除这些自定义程序包,因为它们是anaconda云中的合法程序包。您可以通过正则表达式从conda search中排除它们。它从输出中看起来并不像它们已安装 - 至少在当前环境中不是这样。