web-dev-qa-db-fra.com

comment changer la version par défaut de Python?

J'ai installé python 3.2 sur mon mac. Après avoir exécuté/Applications/Python 3.2/Update Shell Profile.command , il est déroutant de constater que lorsque je tape python -V dans Terminal, il indique que Python 2.6.1 , comment changer la version par défaut de python?

68
Zhu Shengqi

C'est probablement souhaitable pour la compatibilité ascendante.

Python3 rompt la compatibilité avec les versions antérieures et les programmes appelant 'python' attendent probablement python2. Vous avez probablement déjà de nombreux programmes et scripts dont vous ne savez même pas qu'ils attendent python = python2, et leur modification risquerait de briser ces programmes et scripts.

La réponse que vous cherchez probablement est Vous ne devriez pas changer cela .

Vous pouvez toutefois créer un alias personnalisé dans votre shell. La façon dont vous le faites dépend du shell, mais vous pourriez peut-être faire alias py=python3

Si vous ne savez pas comment démarrer la dernière version de python, il est au moins le cas sous Linux que python3 laisse votre installation python2 intacte (pour les raisons de compatibilité ci-dessus); ainsi vous pouvez démarrer python3 avec la commande python3.

88
ninjagecko

Sous Mac OS X, en utilisant le programme d'installation de python.org, comme vous l'avez apparemment, vous devez appeler Python 3 avec python3, pas python. Cela est actuellement réservé aux versions de Python 2. Vous pouvez également utiliser python3.2 pour appeler spécifiquement cette version.

$ which python
/usr/bin/python
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ cd /Library/Frameworks/Python.framework/Versions/3.2/bin/
$ ls -l
total 384
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 2to3@ -> 2to3-3.2
-rwxrwxr-x  1 root  admin    140 Feb 20 11:14 2to3-3.2*
lrwxr-xr-x  1 root  admin      7 Apr 28 15:51 idle3@ -> idle3.2
-rwxrwxr-x  1 root  admin    138 Feb 20 11:14 idle3.2*
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 pydoc3@ -> pydoc3.2
-rwxrwxr-x  1 root  admin    123 Feb 20 11:14 pydoc3.2*
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3*
lrwxr-xr-x  1 root  admin     12 Apr 28 15:51 python3-32@ -> python3.2-32
lrwxr-xr-x  1 root  admin     16 Apr 28 15:51 python3-config@ -> python3.2-config
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 python3.2-32*
lrwxr-xr-x  1 root  admin     17 Apr 28 15:51 python3.2-config@ -> python3.2m-config
-rwxrwxr-x  1 root  admin  25784 Feb 20 11:14 python3.2m*
-rwxrwxr-x  1 root  admin   1865 Feb 20 11:14 python3.2m-config*
lrwxr-xr-x  1 root  admin     10 Apr 28 15:51 pythonw3@ -> pythonw3.2
lrwxr-xr-x  1 root  admin     13 Apr 28 15:51 pythonw3-32@ -> pythonw3.2-32
-rwxrwxr-x  1 root  admin  25624 Feb 20 11:14 pythonw3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 pythonw3.2-32*

Si vous avez également installé Python 2 à partir de python.org, il aurait un répertoire bin similaire à celui-ci, sans noms de fichiers qui se chevauchent (sauf pour 2to3).

$ open /Applications/Python\ 2.7/Update\ Shell\ Profile.command
$ sh -l
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ls -l
total 288
-rwxrwxr-x  1 root  admin    150 Jul  3  2010 2to3*
lrwxr-x---  1 root  admin      7 Nov  8 23:14 idle@ -> idle2.7
-rwxrwxr-x  1 root  admin    138 Jul  3  2010 idle2.7*
lrwxr-x---  1 root  admin      8 Nov  8 23:14 pydoc@ -> pydoc2.7
-rwxrwxr-x  1 root  admin    123 Jul  3  2010 pydoc2.7*
lrwxr-x---  1 root  admin      9 Nov  8 23:14 python@ -> python2.7
lrwxr-x---  1 root  admin     16 Nov  8 23:14 python-config@ -> python2.7-config
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 python2.7*
-rwxrwxr-x  1 root  admin   1663 Jul  3  2010 python2.7-config*
lrwxr-x---  1 root  admin     10 Nov  8 23:14 pythonw@ -> pythonw2.7
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 pythonw2.7*
lrwxr-x---  1 root  admin     11 Nov  8 23:14 smtpd.py@ -> smtpd2.7.py
-rwxrwxr-x  1 root  admin  18272 Jul  3  2010 smtpd2.7.py*
40
Ned Deily

Ancienne question, mais alternativement:

virtualenv --python=python3.5 .venv
source .venv/bin/activate
22
FreshPow

Changez le Python "par défaut" en le plaçant devant le système Python sur votre chemin, par exemple:

export PATH=/usr/local/bin:$PATH
16
Adam Vandenberg

Vérifiez l'emplacement de python 3

$ which python3
/usr/local/bin/python3

Écrire un alias dans bash_profile

vi ~/.bash_profile  
alias python='/usr/local/bin/python3'

Recharger bash_profile

source ~/.bash_profile

Confirmer la commande python

$ python --version
Python 3.6.5
14

J'utilise OS X 10.7.5 et Python 3.4.2. Si vous tapez python3 et ce que vous voulez exécuter, il s'exécutera à l'aide de python 3. Par exemple pyhton3 test001.py. Cela a couru un programme de test que j'ai fait appelé test001. J'espère que ça aide.

3
ITGM

Selon une recherche rapide sur Google, cette mise à jour ne s'applique qu'au shell actuel que vous avez ouvert. Vous pouvez probablement le corriger en tapant python3, car mac et linux sont assez similaires pour que de tels événements coïncident. Lien vers le résultat de la recherche Google.

En outre, comme l'a déclaré ninjagecko, la plupart des programmes n'ont pas encore été mis à jour vers 3.x. Par conséquent, l'utilisation du python par défaut en tant que 3.x romprait de nombreux scripts python utilisés dans les applications.

2
Matt Habel

Aller vers:

Poste de travail -> Propriétés -> Avancé -> Variables d'environnement -> Variables système

Supposons que python 2.7 ait déjà été ajouté dans la variable de chemin et que vous souhaitiez changer le chemin par défaut en python 3.x

puis ajoutez le chemin du dossier python3.5.x avant le chemin python2.7.

open cmd: type "python --version"

la version de python sera remplacée par python 3.5.x

0
Ankit Agrawal
Sudo mv /usr/bin/python /usr/bin/python2
Sudo ln -s $(which python3) /usr/bin/python

Cela va casser les scripts, mais c’est exactement le moyen de changer de python. Vous devez également réécrire les scripts pour ne pas supposer que python est 2.x. Cela fonctionnera quel que soit l'endroit où vous appelez system ou exec.

0
duane

Faire la bonne chose, faire la bonne chose!

---> Zero Ouvrez votre terminal,

--En premier lieu, saisissez python -V, il est probable que:

Python 2.7.10

-En second lieu, saisissez python3 -V, cela indique probablement:

Python 3.7.2

- Troisièmement, saisissez where python ou which python, cela indique probablement:

/usr/bin/python

Quatrièmement, entrez where python3 ou which python3, il est probable que:

/usr/local/bin/python3

- Ajoutez ensuite la ligne suivante au bas de votre fichier de variable d’environnement PATH dans ~/.profile file or ~/.bash_profile sous Bash ou ~/.zshrc sous zsh.

alias python='/usr/local/bin/python3'

OR

alias python=python3

-Sixthly saisir source ~/.bash_profile sous Bash ou source ~/.zshrc sous zsh.

- Septièmement, quittez le terminal.

--- Huitièmement Ouvrez votre terminal et entrez python -V. Il indique probablement: 

Python 3.7.2

Je l'avais essayé avec succès.

D'autres, le ~/.bash_profile sous zsh n'est pas ce ~/.bash_profile

La variable d’environnement PATH sous zsh à la place de ~/.profile (ou ~/.bash_file) via ~/.zshrc.

Aidez-vous les gars!

0
McAllister Bowman