webentwicklung-frage-antwort-db.com.de

kondapakete mit dem Versionsnamen 'custom'

Bei der Verwendung von conda search anaconda habe ich einige Pakete der custom version gefunden, die wie folgt dargestellt sind:

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 

Beachten Sie, dass diese drei custom version pkgs am Ende der conda search anaconda-Ergebnisse angezeigt werden. Sie werden daher von conda als neueste Version betrachtet, was sich auch auf conda install anaconda-Ergebnisse auswirkt (daher muss conda install anaconda=4.0.0 verwendet werden).

Dann ergibt conda info anaconda=custom folgende Ergebnisse:

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*           

ABER ich weiß nicht, wie und warum WARUM diese drei Pakete auf diesem Computer erscheinen, kann jeder erklären:

  1. Wie werden diese custom version pkgs überhaupt erstellt?
  2. Wie/Warum werden diese custom version-Pakete in den conda search-Ergebnissen angezeigt?
  3. Wie entferne ich diese custom version pkgs?
11
YaOzI

Die custom-Version eines beliebigen Pakets (im Moment in den offiziellen Repos) gilt für das anaconda-Paket.

Hier gibt es einen Grund ... Die anaconda-Kondapakete sind metapackages , dh Pakete von Paketen - oder Pakete, die keinen echten Quellcode haben und nur eine Reihe von Abhängigkeiten mitbringen. Für jedes anaconda-Paket ist jedes Unterpaket an eine explizite und spezifische Version dieses Unterpakets angeheftet. Das liegt daran, dass Continuum ausführliche Tests zur Interoperabilität dieses Paketsatzes (und dieser spezifischen Versionen) durchführt.

Nachdem Sie Anaconda installiert haben, entweder über das Anaconda-Installationsprogramm oder Miniconda und anschließend conda install anaconda, haben Sie eine Reihe von Paketen mit all diesen getesteten Garantien. Es gibt keinen Grund, warum Sie sich an diese gesperrten Pakete halten müssen - Sie können alles und jede Version installieren, die Sie möchten. Sie haben jedoch keine Versionsidentifizierbare Anaconda Distribution mehr. Sie haben angepasst es. Wenn Sie conda list ausführen und die Version des anaconda-Pakets custom zeigt, wissen Sie, dass Sie von den Paketen der Anaconda-Distribution abweichen, die auf Interoperabilität getestet wurden.

Ihre conda search anaconda-Abfrage spiegelt nur ein Artefakt der Implementierung wider. In dieser Abfrage werden Sie feststellen, dass custom-Pakete zuerst aufgeführt werden. Dies bedeutet, dass sie beim Vergleich von Versionen die niedrigste Sortierreihenfolge aufweisen. Wenn Sie also conda update anaconda ausführen, nachdem Sie von den speziell angehefteten Anaconda-Paketen abgewichen sind, kehren Sie zu einer nummerierten Version der Anaconda-Distribution zurück.

12
kalefranz

Dies ist wirklich eine teilweise Antwort. Ich bin nicht sicher, warum genau diese Version existiert.

(1) In Bezug auf den spezifischen Versionswert von custom scheint dies von hier erlaubt zu sein:

version: String

Die Paketversion, die - nicht enthalten darf. Conda erkennt PEP 440 an.

Dieses Anaconda-Paket würde also auf dieselbe Weise erstellt wie die anderen Versionen. Ich würde davon ausgehen, conda build zu verwenden.

(2) Sie werden in den Suchergebnissen angezeigt, weil sie in der Anaconda-Wolke vorhanden sind. Es scheint, dass dies eine offiziell veröffentlichte Version von Anaconda ist. 

Wenn Sie eine der eigentlichen Paketdateien herunterladen (z. B. linux-64-anaconda-custom-py35_0.tar.bz2), die Datei erweitern und die info/index.json-Datei lesen, scheint es so zu sein, als würde dieses Paket einfach Python und die anderen Bare Bones-Anforderungen installieren. Vergleichen Sie dies mit Anaconda Version 4.0.0 oder einer der anderen, und Sie werden eine Menge Pakete sehen. Ich gehe davon aus, dass dieses Paket vorhanden ist. Wenn also jemand die benutzerdefinierte Version installiert, erhält er nur die Bare-Bones-Pakete und durchläuft dann conda install andere, die er möchte.

Sehen Sie sich zum Beispiel die Pakete an, wenn Sie conda create -n anc-test anaconda=4.0.0 vs. conda create -n anc-test anaconda=custom ausführen. 

BEARBEITEN: Ich habe gerade gesehen, dass sich das auch in Ihrem conda info befindet, so dass Sie den Unterschied in den Abhängigkeiten wahrscheinlich bereits kennen.

(3) Ich glaube nicht, dass Sie diese benutzerdefinierten Pakete aus Ihrem Suchaufruf entfernen können, da dies legitime Pakete in der Anaconda-Cloud sind. Möglicherweise können Sie sie über Regex aus dem conda search ausschließen. Es sieht nicht so aus, als ob Ihre Ausgabe installiert wurde - zumindest nicht in der aktuellen Umgebung.

0
Paul