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:
conda search
-Ergebnissen angezeigt?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.
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.