Come eseguire il comando di programma 'python' per eseguire Python 3?

218

Il comando di programma python esegue Python 2. Python 3 può essere eseguito utilizzando il comando python3 . Come può Python 3 essere eseguito usando il comando python ?

    
posta Giri 17.07.2013 - 10:04

8 risposte

252

Un modo semplice e sicuro sarebbe usare un alias. Inseriscilo in ~/.bashrc o ~/.bash_aliases file:

alias python=python3

Dopo aver aggiunto quanto sopra nel file, esegui il comando seguente:

source ~/.bash_aliases or source ~/.bashrc

Ad esempio:

$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3

Per aggirare l'alias, usa il comando incorporato command :

$ command python --version
Python 2.7.6

Per disabilitare l'alias nella shell corrente usa il comando built-in unalias :

$ unalias python
$ python --version
Python 2.7.6
    
risposta data Radu Rădeanu 17.07.2013 - 10:13
66

[giugno 2016] il luogo consigliato per informazioni sulla transizione è la Ubuntu Python pagina ufficiale.

Dalla wiki di Ubuntu :

  

Sia per Ubuntu che per Debian, abbiamo progetto in corso goals per rendere Python 3 la versione predefinita e preferita di Python nelle distro.

     

Che cosa non significa:

     
  • /usr/bin/python punterà su Python 3. No, non succederà (a meno che PEP 394 sostiene diversamente, il che è dubbio per il prevedibile futuro). /usr/bin/python e /usr/bin/python2 punteranno a Python 2.7 e /usr/bin/python3 punterà all'ultima versione di Python 3 supportata.

  •   
  • Python 2 verrà rimosso dall'archivio. No, non succederà . Prevediamo che Python 2.7 rimarrà supportato e disponibile in Ubuntu per un periodo piuttosto lungo, dato che PEP 373 promette supporto per la manutenzione di bug fix upstream fino al 2020.

  •   

Non è consigliabile cambiare il collegamento simbolico a causa di altre dipendenze del pacchetto, ma "hanno obiettivi di progetto in corso per rendere Python 3 la versione predefinita, preferita di Python nelle distribuzioni".

Per l'uso della CLI, come @Radu Rădeanu , ti consiglio di inserire un alias nella ~/.bashrc dell'utente, .bash_aliases file (i diversi file, incluso ~/.bash_profile , sono tutti caricati insieme e sono semplicemente per scopi organizzativi). Anche i ambienti virtuali di Python funzionano bene.

Ad esempio:

alias python=python3

o

alias python='/usr/bin/python3'

Gli script possono quindi iniziare con qualcosa di simile:

#!/usr/bin/env python

invece di

#!/usr/bin/python3

Raccomando comunque di utilizzare #!/usr/bin/python3 (o #!/usr/bin/env python3 ) negli script per una più semplice compatibilità incrociata.

L'utilizzo di env è piacevole per l'uso misto con ambienti virtuali.

    
risposta data Kevin 02.06.2014 - 18:31
6

Aggiornamento: ho sbagliato, perché Python2 e Python3 non sono intercambiabili.

Puoi provare lo strumento da riga di comando update-alternatives .

$ sudo update-alternatives --config python

Se ottieni l'errore "nessuna alternativa per python", imposta subito un'alternativa con il seguente comando:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Cambia il percorso /usr/bin/python3 alla tua versione python desiderata di conseguenza.

    
risposta data webwurst 04.05.2014 - 16:03
2

Ubuntu, e il resto delle distribuzioni Linux, dipendono ancora da Python 2.7 per un numero di applicazioni e comandi. Se cambi il riferimento predefinito di "python" in Python 3.x, allora un certo numero di funzioni Python inizierà a lanciare errori di asserzione.

Ad esempio, su Ubuntu, "pip" per uno non funzionerebbe più correttamente a meno che tu non abbia modificato direttamente il file e modificato lo shebang in riferimento a "#! / usr / bin / env python2.7". Sui sapori RHEL (Red Hat Enterprise Linux) come Red Hat, Fedora e CentOS, il comando 'Yum' dipende anche da Python 2.7.

Il mio punto qui è che si farebbe in modo che una quantità significativa di codice inizi a lanciare errori di asserzione solo così si potrebbe digitare "python" nel terminale per fare riferimento a Python 3.x.

Stai molto meglio usando il comando 'python3' nel terminale e lo shebang '#! / usr / bin / env python3' nei tuoi file Python 3.x.

    
risposta data Moony 25.03.2016 - 16:43
1

Fai

cd ~
gedit .bash_aliases

quindi scrivi

alias python=python3

o

alias python='/usr/bin/python3'

Salva il file, chiudi il terminale e aprilo di nuovo.
Link

    
risposta data Breeze 15.09.2017 - 20:36
0

Puoi utilizzare update-alternatives per fornire versioni diverse dei programmi che potrebbero essere necessari in momenti diversi a causa di problemi di compatibilità.

Questa risposta è un buon esempio su come impostare le cose per mantenere contemporaneamente diverse versioni di gcc / g ++, per esempio.

fai lo stesso con python2.7 e python 3.3

    
risposta data dcanelhas 18.10.2013 - 15:19
0
cat > /usr/local/bin/py
#!/usr/bin/dash
python3 "[email protected]"
<CTRL-D>

(a condizione che tu abbia il permesso di scrittura su / usr / local / bin) analogamente

cat > /usr/local/bin/pyi
#!/usr/bin/dash
python3 -i "[email protected]"
<CTRL-D>

quindi scrivi solo py (e usa py in #! lines) per il tuo python scelto.

    
risposta data John Allsup 15.01.2016 - 23:57
0

Puoi simulare /usr/bin/python con python3 con

sudo ln -s /usr/bin/python3 /usr/bin/python

Vedi le altre risposte sul perché potresti non volerlo fare. Ubuntu 18.04 non viene più con Python 2, quindi non dovrebbe essere troppo male.

    
risposta data boris 03.05.2018 - 23:01

Leggi altre domande sui tag