Impossible de définir la version python par défaut sur python3 dans ubuntu

147

J'essayais de définir la version par défaut de python python3sur Ubuntu 16.04. Par défaut, c'est python2(2.7). J'ai suivi les étapes ci-dessous:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3

mais j'obtiens l'erreur suivante pour la deuxième déclaration,

rejeesh@rejeesh-Vostro-1015:~$ update-alternatives --install /usr/bin/python python /usr/bin/python3
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.   

Je suis nouveau sur Ubuntu et je ne sais pas ce que je fais de mal.

RejeeshChandran
la source
3
Comme indiqué dans l'avertissement, vous n'avez pas la priorité.
greedy52
6
Veillez à ne pas supprimer Python 2.7 car cela paralyserait de nombreuses installations de votre système d'exploitation (par expérience :()
Jacques de Hooge
J'ai modifié ma réponse par rapport à votre erreur de priorité.
Steampunkery
1
Un mot d'avertissement: cela me semble une mauvaise idée de passer pythonà Python 3. La façon par défaut d'appeler des scripts écrits en Python 2 est python my-script-p2.py, tant que c'est le cas python3 my-script-p3.py. Je m'attendrais à ce que de nombreux scripts système s'appuient sur cela.
jan groth
1
Pour ceux qui sont intéressés par le sujet, je recommanderais de prêter attention à l'environnement virtuel: docs.python.org/3/tutorial/venv.html Mon Ubuntu 18 LTS utilise toujours Python 2.7 et, par exemple, j'utilise le environnement virtuel pour utiliser Python 3.X et être à jour dans mes projets Django.
Victor Bjorn le

Réponses:

139

Ouvrez votre fichier .bashrc nano ~/.bashrc. Tapez alias python=python3sur une nouvelle ligne en haut du fichier puis enregistrez le fichier avec ctrl + o et fermez le fichier avec ctrl + x. Ensuite, revenez à votre type de ligne de commande source ~/.bashrc. Maintenant, votre alias devrait être permanent.

ÉDITER:

Pour les alternatives de mise à jour, la priorité est un entier. La priorité représente le programme qui doit être le premier utilisé. Cet article résume assez bien tout cela.

Steampunkery
la source
61
C'est la mauvaise réponse. Modifier votre bashrc ne fait pas la même chose que les alternatives de mise à jour. Par exemple, les scripts commençant par #!/usr/bin/env pythonn'utiliseront pas la version de bashrc. Veuillez utiliser la réponse de @ Pardhu.
stonewareslord
J'ai écrit cette réponse il y a longtemps et je suis conscient que les alternatives de mise à jour ne sont pas la même chose que de changer bashrc. Je peux modifier la réponse si vous le souhaitez.
Steampunkery
1
C'est plus un avertissement aux utilisateurs avec cette question que changer l'alias ne fait pas la même chose. A vous si vous souhaitez éditer.
stonewareslord
C'est la seule réponse qui m'a aidé. J'ai essayé de faire sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5.2. But I got: update-alternatives: --install needs <link> <name> <path> <priority> Use 'update-alternatives --help' for program usage information.
alexchenco
1
J'ai fait ça et ça a cassé des choses, comme des virtualenvs. Cette réponse crée plus de problèmes
Kuzeko
296

La deuxième ligne mentionnée peut être remplacée par

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

Cela donne une priorité de 10 pour le chemin de python3. L'inconvénient de l'édition de .bashrcfichier est qu'elle ne fonctionnera pas lors de l'utilisation des commandes avec sudo.

Mise à jour: veuillez utiliser sudolors de l'exécution de la commande comme ceci:

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

Pardhu
la source
3
Bonne et facile sortie.
PrakashG
7
Bon et droit au but. "<priority>" dans le message d'erreur l'a déjà suggéré. BTW, "sudo" est généralement nécessaire pour exécuter cette commande d'installation.
ywu
4
Comme vous l'avez dit, j'ai dû exécuter "sudo update-alternatives --install / usr / bin / python python / usr / bin / python3 10"
Roy
3
C'est la bonne façon de le faire à coup sûr, mais il convient de noter que la modification de la valeur par défaut du système est susceptible de casser certaines choses. Par exemple, je devais aller appliquer un correctif à terminator , qui ne fonctionne qu'avec python2.
Dale Anderson
1
Ne fonctionne pas complètement - après l' pythonexécution de cette commande python3, mais python-configcontinue de fonctionner python2-configet une casse générale s'ensuit
Chris Dodd
36

Pour changer Python 3.6.8 par défaut dans Ubuntu 18.04 en Python 3.7.

Installez Python 3.7

Étapes pour installer Python3.7 et le configurer comme interpréteur par défaut.

  1. Installez le package python3.7 en utilisant apt-get

    sudo apt-get install python3.7

  2. Ajouter Python3.6 et Python 3.7 à update-alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
  1. Mettre à jour Python 3 pour pointer vers Python 3.7

    sudo update-alternatives --config python3 Entrez 2 pour Python 3.7

  2. Tester la version de python

python3 --v
Python 3.7.1 
Purushottam Prabhakar
la source
3
Vous souhaiterez peut-être inclure un avertissement indiquant que cela peut endommager les logiciels emballés. Python 3.6 est la version distribuée par défaut et tout progiciel fourni assumera également cette version.
Tim
Cela m'a aidé. Merci.
jeffry copps
Puis-je remplacer le python par la version 3.7 au lieu de python3?
Wee Hong
@Tim, quelle est la meilleure façon de s'en occuper?
Shreya
@Wee Hong, oui vous pouvez. Au lieu de $ sudo update-alternative --install / usr / bin / python3 python3 .... vous remplacez simplement par $ sudo update-alterative --install / usr / bin / python python ..... et après: sudo update -alternatives --config python.
Arthur Zennig le
23

Pour passer à python3, vous pouvez utiliser la commande suivante dans le terminal alias python=python3.

DanteVoronoï
la source
4
Mais cela ne fonctionne que pour le processus en cours d'exécution dans le terminal. Si je ferme et ouvre le terminal, il redeviendra python2.
RejeeshChandran
2
@RejeeshChandran Regardez la réponse Steampunkery
Seraf
13

Un moyen sûr simple serait d'utiliser un alias. Placez-le dans un fichier ~ / .bashrc: si vous utilisez l'éditeur gedit

gedit ~ / .bashrc

pour aller dans le fichier bashrc, puis en haut du fichier bashrc, effectuez la modification suivante.

alias python = python3

Après avoir ajouté ce qui précède dans le fichier. exécutez la commande ci-dessous

source ~ / .bash_aliases ou source ~ / .bashrc

exemple:

$ python --version

Python 2.7.6

$ python3 --version

Python 3.4.3

$ alias python = python3

$ python --version

Python 3.4.3

Khan
la source
10

En plus, vous pouvez également ajouter un alias pour pip (dans .bashrc ou bash_aliases):

alias pip = 'pip3'

Vous trouverez souvent qu'une installation propre de python3 pointe en fait vers python3.x, vous aurez donc peut-être besoin de:

alias pip = 'pip3.6'
alias python = 'python3.6'

Paraic
la source
7

Lors de la première installation de python3 et pip3

sudo apt-get install python3 python3-pip

puis dans votre terminal courir

alias python=python3

Vérifiez la version de python sur votre machine.

python --version

la source
7

Si vous avez Ubuntu Focal (20.20), vous pouvez installer python-is-python3:

sudo apt-get install python-is-python3

pour remplacer le lien symbolique dans /usr/bin/pythonpour pointer vers /usr/bin/python3.8.

silviot
la source
5

Comme il est dit, update-alternatives --installnécessite les arguments <link> <nom> <chemin> et <priority>.

Vous avez link ( /usr/bin/python), name ( python) et path ( /usr/bin/python3), il vous manque la priorité.

update-alternatives --help dit:

<priority> est un entier; les options avec des nombres plus élevés ont une priorité plus élevée en mode automatique.

Alors mets juste un 100ou quelque chose à la fin

user7502402
la source
5

Faire

cd ~
gedit .bash_aliases

puis écris soit

alias python=python3

ou

alias python='/usr/bin/python3'

Enregistrez le fichier, fermez le terminal et ouvrez-le à nouveau.
Vous devriez aller bien maintenant! Lien

Rika
la source
5

Suivez simplement ces étapes pour aider à changer le python par défaut en la version python nouvellement mise à niveau. A bien fonctionné pour moi.

  • sudo apt-install python3.7 Installez la dernière version de python souhaitée
  • cd /usr/bin Entrez le répertoire racine dans lequel python est installé
  • sudo unlink pythonou sudo unlink python3. Dissocier le python par défaut actuel
  • sudo ln -sv /usr/bin/python3.7 python Lier la nouvelle version téléchargée de python
  • python --version Vérifiez la nouvelle version de python et vous êtes prêt à partir
Shorya Sharma
la source
3

Pour une autre approche non invasive et réservée aux utilisateurs actuels:

# First, make $HOME/bin, which will be automatically added to user's PATH
mkdir -p ~/bin
# make link actual python binaries
ln -s $(which python3) python
ln -s $(which pip3) pip

python pip sera prêt dans un nouveau shell.

tdihp
la source
2

obtenir le chemin python à partir de

ls /usr/bin/python*

puis définissez votre version de python

alias python="/usr/bin/python3"
pradeep karunathilaka
la source
0

La meilleure façon d'ubuntu 18.04 qui fonctionnera pour tous les utilisateurs est

sudo vim /etc/bash.bashrc
add lines
alias python=python3
alias pip=pip3

Enregistrez les modifications et redémarrez.

Après le redémarrage, la version de python 3 que vous avez dans le système avec python 2.7 sera considérée par défaut. Vous pourriez être plus précis en disant ce qui suit dans alias si vous avez plusieurs versions de python 3.

sudo vim /etc/bash.bashrc
add lines
alias python=python3.6
alias pip=pip3.6
Mian Asbat Ahmad
la source
0

Retirez simplement python-is-python2:

sudo apt purge python-is-python2

Et installez python-is-python3:

sudo apt install python-is-python3

Il automatisera le processus de transition vers le nouveau python3. Vous pouvez éventuellement vous débarrasser des paquets restants plus tard:

sudo apt autoremove && sudo apt autoclean
Farab Alipanah
la source
0

Pour changer Python 3.6.8 par défaut dans Ubuntu 18.04 à partir de Python 2.7, vous pouvez essayer l'outil de ligne de commande update-alternatives.

sudo update-alternatives --config python

Si vous obtenez l'erreur "pas d'alternatives pour python", configurez vous-même une alternative avec la commande suivante:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

Modifiez le chemin /usr/bin/python3d' accès à la version Python souhaitée en conséquence.

Le dernier argument spécifié comme priorité signifie que si aucune sélection alternative manuelle n'est effectuée, l'alternative avec le numéro de priorité le plus élevé sera définie. Dans notre cas, nous avons défini une priorité 2 pour /usr/bin/python3.6.8et, par conséquent, la /usr/bin/python3.6.8version python par défaut a été automatiquement définie par la commande update-alternatives.

nous pouvons à tout moment basculer entre les versions alternatives de python répertoriées ci-dessus en utilisant la commande ci-dessous et en entrant un numéro de sélection:

update-alternatives --config python
Ranjeet Singh
la source
-1

Dans un premier temps, assurez-vous que Python3 est installé sur votre ordinateur

Accédez à votre terminal et tapez:

cd ~/ pour aller dans votre répertoire personnel

Si vous ne l'avez pas encore configuré .bash_profile, tapez touch .bash_profilepour créer votre .bash_profile.

Ou tapez open -e .bash_profilepour modifier le fichier.

Copiez et enregistrez alias python=python3dans le .bash_profile.

Fermez et rouvrez votre terminal. Tapez ensuite la commande suivante pour vérifier si Python3 est votre version par défaut maintenant:

python --version

Vous devriez voir que python 3.xy est votre version par défaut.

À votre santé!

nurealam siddiq
la source
cette méthode déjà décrite dans la réponse préférée à cette question. et votre réponse n'apporte rien.
tripulse