Qual è il confronto tra conda vs pip vs anaconda?
Ciao,
Hai esposto 3 cose diverse, anche se facilmente confondibili.
- Pip = gestore di pacchetti python
- Conda = gestore di pacchetti binari Continuum (ci torneremo sopra)
- Anaconda
Al contrario:
Anaconda:
Anaconda è una distribuzione python continuum. È un insieme di pacchetti che sono stati costruiti per funzionare su più sistemi operativi e aiutare le persone a non doversi preoccupare dell'ambiente o dei diversi interni per rimboccarsi le maniche e mettersi al lavoro. Se questo sia vero è oggetto di dibattito. Personalmente, preferisco tenermi il più vicino possibile al linguaggio nativo.
Anaconda usa conda (credo) per installare i pacchetti che possono essere poi utilizzati.
Importante: non è un gestore di pacchetti, è una distribuzione di pacchetti python.
Conda & Pip:
Questo è il gestore di pacchetti. È usato per installare pacchetti negli ambienti anaconda (di nuovo, credo) e miniconda*. Pip è il gestore di pacchetti Python per eccellenza. Ha un sacco di grandi caratteristiche, dato che il lavoro su di esso è andato molto avanti negli ultimi anni, come l'installazione in una venv direttamente da github e altre funzionalità davvero facili da usare. Non compete direttamente con pip per alcune ragioni.
- Pip è installato o può essere facilmente installato (a seconda del vostro file env) nel vostro ambiente conda
- Pip gestisce solo pacchetti Python. Conda è tutto pacchetti binari. Puoi fare Java, C++, Go, qualsiasi cosa tu voglia (anche se Java sarebbe probabilmente gestito con Maven)
- Conda ti permette di costruire i tuoi pacchetti binari e di gestire i passi pre e post cucinati attraverso file di configurazione yaml. (Non so se Pip permette questo, non ho visto alcun tipo di funzionalità. So che virtualenvwrapper ha post hooks, ma penso che sia intorno al tempo di attivazione)
Non gli rendo davvero giustizia, ma questo è un grande articolo su alcuni miti che vengono chiariti (questo non sono io):
Conda: Myths and Misconceptions
Detto questo, se stai cercando di usare solo componenti Python, io andrei con Pip. Sono nuovo di Conda, ma non lo trovo così intuitivo o facile da usare. Trovo Pip molto più pulito. Entrambi hanno gli stessi problemi con la risoluzione delle dipendenze secondo me.
TL;DR
Sono tutte cose diverse.
conda = pip + virtualenv non è vero