Come posso aggiornare a Python 3.6 con conda?


171

Sono nuovo nella gestione dei pacchetti Conda e voglio ottenere l'ultima versione di Python per usare le f-string nel mio codice. Attualmente la mia versione è ( python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

Come potrei aggiornare a Python 3.6?


La seconda risposta è, penso, la risposta migliore, soprattutto per coloro che hanno un ambiente "master" / "predefinito" in cui l'ultimo e il più grande vengono continuamente aggiornati.
Ericmjl,

Risposte:


248

Anaconda non ha aggiornato internamente Python a 3.6.

a) Metodo 1

  1. Se desideri aggiornare, digiterai conda update python
  2. Per aggiornare il tipo di anaconda conda update anaconda
  3. Se vuoi aggiornare tra le principali versioni di Python da 3.5 a 3.6, dovrai farlo

    conda install python=$pythonversion$

b) Metodo 2: creare un nuovo ambiente (metodo migliore)

conda create --name py36 python=3.6

c) Per ottenere l'ultimo pitone assoluto (3.6.5 al momento della scrittura)

conda create --name py365 python=3.6.5 --channel conda-forge

Puoi vedere tutto questo da qui

Inoltre, fare riferimento a questo per l' aggiornamento forzato

EDIT: Anaconda ora ha una versione Python 3.6 qui


18
A meno che Continuum non abbia modificato il funzionamento di conda, non è possibile aggiornare le principali versioni di Python di conda update python. Vedi qui: conda.pydata.org/docs/py2or3.html#update-or-upgrade-python
darthbith

14
conda install python = $ pythonversion $ ad es. conda install python = 3.6
Tim Richardson,

11
conda update pythonmi ha appena portato dalla 3.6.5 alla 3.7.0. ! Neat
Fredrik,

C'è un refuso nella risposta, Metodo 1.3. Dovrebbe essere conda install python=$pythonversion$con un solo segno di uguale.
eze1981,

Metodo FYI a) funziona anche per cambiare tra le diverse versioni di Python, purché non rompa alcuna dipendenza all'interno del Venv
Spcogg il secondo

41

La creazione di un nuovo ambiente installerà python 3.6:

$ conda create --name 3point6 python=3.6
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/dstansby/miniconda3/envs/3point6:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2j-0     
    pip:        9.0.1-py36_1 
    python:     3.6.0-0      
    readline:   6.2-2        
    setuptools: 27.2.0-py36_0
    sqlite:     3.13.0-0     
    tk:         8.5.18-0     
    wheel:      0.29.0-py36_0
    xz:         5.2.2-1      
    zlib:       1.2.8-3 

2
Se l'installazione di conda è per Python 2.7, conda create creerà una versione 2.7. cambiando comando in conda create --name 3point6 python=3(aggiungendo =3alla fine) si crea una versione di python3.
Jonah Graham

1
Lo farà davvero. Ho cambiato la mia risposta per specificare Python 3.6!
David Stansby,

25

Ho trovato questa pagina con le istruzioni dettagliate per aggiornare Anaconda a una versione più recente di Python (da Anaconda 4.0+). Primo,

conda update conda
conda remove argcomplete conda-manager

Ho anche dovuto conda removealcuni pacchetti non nella lista ufficiale:

  • backports_abc
  • bella-soup
  • fiammata-core

A seconda dei pacchetti installati sul sistema, è possibile che vengano visualizzati ulteriori UnsatisfiableErrorerrori: è sufficiente aggiungere tali pacchetti all'elenco di rimozione. Quindi, installa la versione di Python,

conda install python==3.6

che richiede un po 'di tempo, dopo di che un messaggio indicato a conda install anaconda-client, così ho fatto

conda install anaconda-client

che ha detto che è già lì. Infine, seguendo le indicazioni,

conda update anaconda

L'ho fatto nel prompt dei comandi di Windows 10, ma le cose dovrebbero essere simili in Mac OS X.


18

In passato, ho trovato abbastanza difficile provare a eseguire l'aggiornamento sul posto.

Nota: il mio caso d'uso per Anaconda è come un ambiente Python all-in-one. Non mi preoccupo di ambienti virtuali separati. Se stai usando condaper creare ambienti, questo potrebbe essere distruttivo perché condacrea ambienti con collegamenti all'interno della tua Anaconda/envsdirectory.

Quindi, se usi gli ambienti, potresti prima voler esportare i tuoi ambienti . Dopo aver attivato il tuo ambiente, fai qualcosa del tipo:

conda env export > environment.yml

Dopo aver eseguito il backup degli ambienti (se necessario), è possibile rimuovere la vecchia Anaconda (è molto semplice disinstallare Anaconda):

$ rm -rf ~/anaconda3/

e sostituirlo scaricando la nuova Anaconda, ad esempio Linux, a 64 bit:

$ cd ~/Downloads
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.0-Linux-x86_64.sh 

( vedi qui per uno più recente ),

e poi eseguendolo:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 

11

Sto usando un Mojave per Mac OS

Questi 4 passaggi hanno funzionato per me.

  1. conda update conda
  2. conda install python=3.6
  3. conda install anaconda-client
  4. conda update anaconda

0

Il metodo migliore che ho trovato:

source activate old_env
conda env export > old_env.yml

Quindi elaboralo con qualcosa del genere:

with open('old_env.yml', 'r') as fin, open('new_env.yml', 'w') as fout:
    for line in fin:
        if 'py35' in line:  # replace by the version you want to supersede
            line = line[:line.rfind('=')] + '\n'
        fout.write(line)

quindi modifica manualmente la prima ( name: ...) e l'ultima riga ( prefix: ...) per riflettere il tuo nuovo nome di ambiente ed esegui:

conda env create -f new_env.yml

potrebbe essere necessario rimuovere o modificare manualmente il pin della versione di alcuni pacchetti per cui la versione bloccata old_env risulta incompatibile o mancante per la nuova versione di Python.

Vorrei che ci fosse un modo integrato e più semplice ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.