Anaconda è diventato molto popolare nel calcolo scientifico, poiché raggruppa oltre 125 delle librerie di analisi dei dati Python più utilizzate. La mia domanda è, dal momento che abbiamo già pip (che è un gestore di pacchetti Python molto diffuso), perché abbiamo bisogno di Anaconda? Non potremmo semplicemente digitare pip install
per ognuna delle 125+ librerie e funzioneranno tutte insieme bene? Oppure non avrebbero lavorato bene insieme, il che significa che Anaconda ci ha fatto un grosso favore risolvendo i problemi che sorgono quando cerchiamo di far interagire bene le librerie 125+?Perché abbiamo bisogno di Anaconda quando abbiamo pip?
12
A
risposta
2
Il problema è che molti di questi pacchetti scientifici hanno dipendenze su molte librerie C esterne e tra loro che pip non può gestire.
Per esempio, si veda la mia domanda: How to Bootstrap numpy installation in setup.py
che è stato per la mia libreria, ma penso che un sacco di altri pacchetti affrontare un problema simile.
Inoltre, la compilazione delle librerie richiede molto tempo. La semplice digitazione di pip install numpy
sulla mia macchina impiega più di un minuto. È lo stesso motivo per cui le persone utilizzano i binari precompilati con apt-get
o yum
invece di compilare programmi dall'origine.
7
tre ragioni fondamentali:
- La maggior parte di queste librerie richiedono con link a librerie installate di sistema (come, ad esempio, per HDF5 PyTables o ATLAS per Numpy), che l'utente può o non può essere a conoscenza. Nota che Matplotlib richiede un sacco di diverse librerie grafiche e, se mancano, si bloccherà su determinati backend.
- librerie pip compiles (con le ruote è possibile evitare questo passaggio, però). Ciò richiede un compilatore C (difficile in Windows) e un compilatore FORTRAN (difficile in Mac e Windows). Ci vuole anche tempo per grandi biblioteche come Scipy.
- Il metapacchetto anaconda di Anaconda è un insieme minimo di librerie che il Continuum ha fatto in modo che suonassero bene insieme. In un mondo ideale, dovremmo sempre usare l'ultima e migliorata versione di tutto, ma ciò potrebbe portare a incompatibilità.
E un complemento:
- E 'facile da usare Conda per creare un insieme di pacchetti per la distribuzione. Quindi puoi facilmente condividere il tuo pacchetto includendo tutte le sue dipendenze.
"Noi" non abbiamo bisogno di Anaconda. Ma se sei su Windows e non hai un compilatore, Anaconda potrebbe essere una delle tante soluzioni – cox
Immagino che 'pip install' per 125+ pacchetti sia troppo complicato per provarlo tu stesso? Avere una comunità che utilizza le stesse versioni di librerie è molto meglio per la collaborazione di chiunque abbia solo l'ultima versione di ogni libreria che era nel giorno in cui è stata installata. –
In realtà è un po 'una seccatura installare alcuni pacchetti su Windows. Ad esempio, se voglio installare numpy via pip su Windows, ho bisogno di un compilatore C++, un compilatore fortran, ecc. Se faccio solo "pip install numpy", in realtà non funzionerà di default su Windows e mi richiederà per eseguire un'installazione e un'installazione aggiuntive. Non esiste un gestore di pacchetti "windows" generale, quindi ora ho bisogno di rintracciare ciò che ho bisogno di installare, muck con il mio percorso e file di configurazione, ecc. Stessa cosa con molte delle librerie "pesanti". – Michael0x2a