Conda
i conda-forge
oba są menedżerami pakietów Pythona. Jaki jest właściwy wybór, gdy pakiet istnieje w obu repozytoriach? Na przykład Django można zainstalować z jednym i drugim, ale różnica między nimi polega na kilku zależnościach (conda-forge ma o wiele więcej). Nie ma wytłumaczenia tych różnic, nie ma nawet prostego pliku README.
Którego należy użyć? Conda czy Conda-Forge? Czy to ma znaczenie?
conda
jest menedżerem pakietów iconda-forge
kanałem. Może to prawda, kiedy zadano to pytanie?Odpowiedzi:
Krótka odpowiedź jest taka, że z mojego ogólnego doświadczenia wynika, że nie ma znaczenia, którego używasz.
Długa odpowiedź:
conda-forge
Jest to więc dodatkowy kanał, z którego można instalować pakiety. W tym sensie nie jest bardziej wyjątkowy niż kanał domyślny lub którykolwiek z setek (tysięcy?) Kanałów, na które ludzie wysyłali paczki. Możesz dodać własny kanał, jeśli zarejestrujesz się na https://anaconda.org i prześlesz własne pakiety Conda.W tym miejscu musimy dokonać rozróżnienia, o którym myślę, że nie jesteście jasno sformułowani w pytaniu, między
conda
menedżerem pakietów dla wielu platform aconda-forge
kanałem pakietów. Anaconda Inc. (dawniej Continuum IO), główni twórcyconda
oprogramowania, również utrzymują oddzielny kanał pakietów, który jest domyślny, gdy piszeszconda install packagename
bez zmiany jakichkolwiek opcji.Istnieją trzy sposoby zmiany opcji kanałów. Pierwsze dwa są wykonywane za każdym razem, gdy instalujesz pakiet, a ostatni jest trwały. Pierwszym jest określenie kanału za każdym razem, gdy instalujesz pakiet:
Oczywiście pakiet musi istnieć na tym kanale. W ten sposób zainstaluje
packagename
i wszystkie jego zależności zsome-channel
. Alternatywnie możesz określić:Pakiet nadal musi istnieć
some-channel
, ale terazpackagename
będzie tylko pobieranysome-channel
. Wszelkie inne pakiety, które są potrzebne do spełnienia zależności, będą wyszukiwane z domyślnej listy kanałów.Aby zobaczyć konfigurację kanału, możesz napisać:
Możesz kontrolować kolejność wyszukiwania kanałów
conda config
. Możesz pisać:aby dodać kanał
some-channel
na góręchannels
listy konfiguracji. Dajesome-channel
to najwyższy priorytet. Priorytet określa ( częściowo ), który kanał zostanie wybrany, gdy więcej niż jeden kanał ma określony pakiet. Aby dodać kanał na koniec listy i nadać mu najniższy priorytet, wpiszJeśli chcesz usunąć dodany kanał, możesz to zrobić pisząc
Widzieć
aby uzyskać więcej opcji.
Biorąc to wszystko pod uwagę, istnieją cztery główne powody, dla których warto używać
conda-forge
kanału zamiastdefaults
kanału obsługiwanego przez Anacondę:conda-forge
mogą być bardziej aktualne niż te nadefaults
kanaleconda-forge
kanale są pakiety , które nie są dostępne zdefaults
openblas
(zconda-forge
) zamiastmkl
(zdefaults
).źródło
conda install -c some-channel packagename
sposobu pisania poleceniamkl
szybszy niżopenblas
?Anaconda zmieniła swoje Warunki korzystania z usługi, tak aby „ciężcy użytkownicy komercyjni” musieli płacić, co nie obejmuje
conda-forge
kanału.Prawdopodobnie chciałbyś się tego trzymać,
conda-forge
jeśli nie chcesz płacić za użycie. Jak stwierdzono w dokumentach :Możesz także użyć miniforge, które ma
conda-forge
jako kanał domyślny i obsługuje platformy ppc64le i aarch64, a także inne zwykłe.źródło
Kanał conda-forge to miejsce, w którym można znaleźć pakiety, które zostały stworzone dla conda, ale nie są jeszcze częścią oficjalnej dystrybucji Anacondy.
Generalnie możesz użyć dowolnego z nich.
źródło
Istnieje kilka bibliotek Pythona, których nie można zainstalować za pomocą prostego narzędzia,
conda install
ponieważ ich kanał nie jest dostępny, chyba że zastosujesz conda-forge. Z mojego doświadczenia wynika, że pip jest bardziej ogólny, jeśli chodzi o spojrzenie na inne źródła kanałów niż conda. Na przykład, jeśli chcesz zainstalowaćpython-constraint
, możesz to zrobić przez,pip install
ale zainstalować przez ** cond **. musisz określić kanał -conda-forge
.ale nie
źródło
conda update --all
nie zaktualizują zainstalowanego pakietu pip