Conda
und conda-forge
sind beide Python-Paketmanager. Was ist die richtige Wahl, wenn in beiden Repositorys ein Paket vorhanden ist? Django kann zum Beispiel mit beiden installiert werden, aber der Unterschied zwischen den beiden besteht in mehreren Abhängigkeiten (conda-forge hat viel mehr). Es gibt keine Erklärung für diese Unterschiede, nicht einmal eine einfache README.
Welches sollte verwendet werden? Conda oder Conda-Forge? Ist das wichtig?
conda
ist ein Paketmanager undconda-forge
ist ein Kanal. Vielleicht stimmte es, als diese Frage gestellt wurde?Antworten:
Die kurze Antwort lautet, dass es meiner Erfahrung nach im Allgemeinen egal ist, welche Sie verwenden.
Die lange Antwort:
Dies
conda-forge
gilt auch für einen zusätzlichen Kanal, über den Pakete installiert werden können. In diesem Sinne ist es nicht spezieller als der Standardkanal oder einer der anderen Hunderte (Tausende?) Von Kanälen, auf denen Leute Pakete gepostet haben. Sie können Ihren eigenen Kanal hinzufügen, wenn Sie sich unter https://anaconda.org anmelden und Ihre eigenen Conda-Pakete hochladen.Hier müssen wir die Unterscheidung zwischen
conda
dem plattformübergreifenden Paketmanager undconda-forge
dem Paketkanal treffen, über die Sie meiner Meinung nach aus Ihrer Formulierung in der Frage nicht klar sind . Anaconda Inc. (ehemals Continuum IO), die Hauptentwickler derconda
Software, verwaltet auch einen separaten Paketkanal. Dies ist die Standardeinstellung, wenn Sieconda install packagename
ohne Änderung von Optionen tippen .Es gibt drei Möglichkeiten, die Optionen für Kanäle zu ändern. Die ersten beiden werden jedes Mal ausgeführt, wenn Sie ein Paket installieren, und das letzte ist dauerhaft. Der erste besteht darin, bei jeder Installation eines Pakets einen Kanal anzugeben:
Natürlich muss das Paket auf diesem Kanal vorhanden sein. Auf diese Weise werden
packagename
alle Abhängigkeiten von installiertsome-channel
. Alternativ können Sie Folgendes angeben:Das Paket hat immer noch existieren auf
some-channel
, aber jetzt, nurpackagename
aus gezogen werdensome-channel
. Alle anderen Pakete, die zur Erfüllung von Abhängigkeiten benötigt werden, werden in Ihrer Standardliste von Kanälen gesucht.Um Ihre Kanalkonfiguration zu sehen, können Sie schreiben:
Sie können die Reihenfolge steuern, in der Kanäle durchsucht werden
conda config
. Du kannst schreiben:um den Kanal
some-channel
oben in derchannels
Konfigurationsliste hinzuzufügen . Dies gibtsome-channel
die höchste Priorität. Die Priorität bestimmt ( teilweise ), welcher Kanal ausgewählt wird, wenn mehr als ein Kanal ein bestimmtes Paket hat. Geben Sie ein, um den Kanal am Ende der Liste hinzuzufügen und ihm die niedrigste Priorität zu gebenWenn Sie den von Ihnen hinzugefügten Kanal entfernen möchten, können Sie dies schriftlich tun
Sehen
für mehr Optionen.
Nach alledem gibt es vier Hauptgründe, den
conda-forge
Kanal anstelle desdefaults
von Anaconda gepflegten Kanals zu verwenden:conda-forge
möglicherweise aktueller als die auf demdefaults
Kanalconda-forge
Kanal, die nicht verfügbar sinddefaults
openblas
(vonconda-forge
) anstelle vonmkl
(vondefaults
) verwenden.quelle
conda install -c some-channel packagename
den Befehl zu schreiben , wenn Sie ein einzelnes Paket von einem Kanal aus installieren möchtenmkl
schneller alsopenblas
?Anaconda hat seine Nutzungsbedingungen so geändert , dass "starke gewerbliche Nutzer" zahlen müssten, ohne
conda-forge
Kanal.Sie möchten sich wahrscheinlich daran halten,
conda-forge
wenn Sie nicht für die Nutzung bezahlen möchten. Wie in den Dokumenten angegeben :Sie können auch Miniforge verwenden, das
conda-forge
als Standardkanal verwendet wird und ppc64le- und aarch64-Plattformen sowie die anderen üblichen Plattformen unterstützt.quelle
Im Conda-Forge-Kanal finden Sie Pakete, die für Conda erstellt wurden, aber noch nicht Teil der offiziellen Anaconda-Distribution sind.
Im Allgemeinen können Sie jeden von ihnen verwenden.
quelle
Es gibt einige Python-Bibliotheken, die Sie nicht einfach installieren können,
conda install
da ihr Kanal nur verfügbar ist, wenn Sie conda-forge anwenden. Nach meiner Erfahrung ist pip generischer, um verschiedene Kanalquellen zu untersuchen als conda. Wenn Sie zum Beispiel installieren möchten,python-constraint
können Sie dies über tun,pip install
aber über ** cond **. Sie müssen den Kanal angeben -conda-forge
.aber nicht
quelle
conda update --all
das installierte Paket von pip nicht aktualisiert werden