Come faccio ad aggiornare Anaconda?

Ho Anaconda installato sul mio computer e vorrei aggiornarlo. In Navigator vedo che ci sono diversi pacchetti individuali che possono essere aggiornati, ma anche un pacchetto anaconda che a volte ha un numero di versione e a volte dice custom. Come posso procedere?

Quello che il 95% delle persone vuole veramente

Nella maggior parte dei casi quello che volete fare quando dite che volete aggiornare Anaconda è eseguire il comando:

conda update --all

(Ma questo dovrebbe essere preceduto da conda update -n root conda in modo da avere l'ultima versione di conda installata)

Questo aggiornerà tutti i pacchetti nell'ambiente corrente all'ultima versione -- con la piccola precisazione che potrebbe usare una vecchia versione di alcuni pacchetti per soddisfare i vincoli di dipendenza (spesso questo non sarà necessario e quando lo sarà, il risolutore del piano dei pacchetti farà del suo meglio per minimizzare l'impatto).

Questo deve essere eseguito dalla riga di comando, e il modo migliore per arrivarci è dal Navigatore Anaconda, poi la scheda "Ambienti", quindi fare clic sul triangolo accanto all'ambiente root, selezionando "Apri terminale":

Questa operazione aggiornerà solo l'ambiente selezionato (in questo caso, l'ambiente root). Se hai altri ambienti che vorresti aggiornare puoi ripetere il processo sopra, ma prima clicca sull'ambiente. Quando è selezionato c'è un marcatore triangolare sulla destra (vedi immagine sopra, passo 3). Oppure dalla riga di comando puoi fornire il nome dell'ambiente (-n envname) o il percorso (-p /path/to/env), per esempio per aggiornare il tuo ambiente dspyr dallo screenshot sopra:

conda update -n dspyr --all

Aggiorna i singoli pacchetti

Se sei interessato solo ad aggiornare un singolo pacchetto allora clicca semplicemente sulla freccia blu o sul numero di versione blu in Navigator, ad esempio per astroid o astropy nello screenshot sopra, e questo etichetterà quei pacchetti per un aggiornamento. Quando hai finito devi cliccare sul pulsante "Apply":

Oppure dalla riga di comando:

conda update astroid astropy

Aggiornare solo i pacchetti della distribuzione standard di Anaconda

Se non ti interessa la versione dei pacchetti e vuoi solo "l'ultimo set di tutti i pacchetti della distribuzione standard di Anaconda, purché funzionino insieme", allora dovresti dare un'occhiata a questo gist.

Perché aggiornare il pacchetto Anaconda è quasi sempre una cattiva idea

Nella maggior parte dei casi l'aggiornamento del pacchetto Anaconda nella lista dei pacchetti avrà un risultato sorprendente: si può effettivamente downgradare molti pacchetti (in effetti, questo è probabile se indica la versione come custom). Il gist qui sopra fornisce i dettagli.

Sfrutta gli ambienti conda

Il tuo ambiente root non è probabilmente un buon posto per provare a gestire un insieme esatto di pacchetti: sarà uno spazio di lavoro dinamico con nuovi pacchetti installati e pacchetti aggiornati in modo casuale. Se hai bisogno di un insieme esatto di pacchetti, allora crea un ambiente conda che li contenga. Grazie alla cache dei pacchetti di conda e al modo in cui viene usato il collegamento dei file, fare questo è tipicamente i) veloce e ii) consuma molto poco spazio su disco aggiuntivo. Per esempio

conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk

La documentazione conda ha maggiori dettagli ed esempi.

pip, PyPI e setuptools?

Niente di tutto ciò aiuterà ad aggiornare i pacchetti che sono stati installati da PyPI tramite pip o qualsiasi pacchetto installato usando python setup.py install. conda list ti darà alcuni suggerimenti sui pacchetti Python basati su pip che hai in un ambiente, ma non farà nulla di speciale per aggiornarli.

Uso commerciale di Anaconda o Anaconda Enterprise

E' praticamente la stessa storia, con l'eccezione che potresti non essere in grado di aggiornare l'ambiente root se è stato installato da qualcun altro (diciamo in /opt/anaconda/latest). Se non sei in grado di aggiornare gli ambienti che stai usando dovresti essere in grado di clonare e poi aggiornare:

conda create -n myenv --clone root
conda update -n myenv --all
Commentari (9)

Se state cercando di aggiornare la vostra versione di Anaconda ad una nuova, noterete che l'esecuzione del nuovo programma di installazione non funziona, in quanto si lamenta che la directory di installazione non è vuota.

Quindi dovreste usare conda per aggiornare come dettagliato dalla documentazione ufficiale:

conda update conda
conda update anaconda

hr/> In Windows, se hai fatto un'installazione "per tutti gli utenti", potrebbe essere necessario eseguire da un prompt di Anaconda con privilegi di Amministratore.

Questo previene l'errore: ERROR conda.core.link:_execute(502): Si è verificato un errore durante la disinstallazione del pacchetto 'defaults::conda-4.5.4-py36_0'. PermissionError(13, 'Access is denied')

Commentari (0)

Aprire "prompt di comando o conda" ed eseguire:

conda update conda
conda update anaconda

È una buona idea eseguire entrambi i comandi due volte (uno dopo l'altro) per essere sicuri che tutti i file di base siano aggiornati.

Questo dovrebbe rimetterti sull'ultima 'release', che contiene pacchetti che sono selezionati dalla gente di Continuum per lavorare bene insieme.

Se vuoi l'ultima versione di ogni pacchetto esegui (questo può portare ad un ambiente instabile):

conda update --all 

Spero che questo aiuti.

Fonti:

Commentari (4)