47 votes

Comment passer de python 2 à python 3, et vice versa ?

Je suis en train de lire How To Learn Python The Hard Way, qui utilise 2. J'ai découvert récemment Invent With Python, qui utilise 3.

Puis-je télécharger python 3 et l'utiliser lorsque je lis Inventer avec Python, puis revenir à python 2 lorsque je veux lire How To Learn Python The Hard Way. Si oui, comment choisir la version à utiliser ?

5 votes

@Matt Joiner : Ce n'est pas une duplication de cette question. Cette question porte sur la configuration de l'environnement, et non sur la version de Python à apprendre.

0 votes

Vérifiez cette question similaire : stackoverflow.com/questions/4301681/

0 votes

Hmm, je suppose. Je ne peux pas revenir sur mon vote serré, rassurez-vous, il n'est qu'à 1/5 pour le moment.

38voto

Vijay Shetty Points 843

Utilisation de virtualenv vous pouvez avoir différents environnements Python isolés sur une seule machine. Vous pouvez également basculer à tout moment entre les différentes versions de l'interpréteur Python.

Qu'est-ce que virtualenv ?

Un environnement virtuel est une copie de travail isolée de Python qui vous permet de travailler sur un projet spécifique sans craindre d'affecter les autres projets. Il permet plusieurs installations de Python côte à côte, une pour chaque projet. Il n'installe pas réellement des copies séparées de Python, mais il fournit un moyen astucieux de garder les différents environnements de projet isolés.

Comment l'installer ?

pip install virtualenv

Pour créer un environnement virtuel pour python 2.7 :

root:~# which python2.7

/usr/bin/python2.7

root:~# which python3.4

/usr/local/bin/python3.4

Vous pouvez également utiliser l'interpréteur Python de votre choix :

root:~# virtualenv -p /usr/bin/python2.7 Vpy27

Running virtualenv with interpreter /usr/bin/python2.7

New python executable in /root/Vpy27/bin/python2.7

Also creating executable in /root/Vpy27/bin/python

Installing setuptools, pip, wheel...done.

Pour commencer à utiliser l'environnement virtuel, il faut l'activer :

root:~# source Vpy27/bin/activate

Le nom de l'environnement virtuel actuel apparaît maintenant à gauche de l'invite :

(Vpy27) root:~# python -V
Python 2.7.3

Installez les paquets comme d'habitude, par exemple :

(Vpy27) root:~# pip install junos-eznc    >> All pip installs done here, will be available only in this environment.

Si vous avez fini de travailler dans l'environnement virtuel pour le moment, vous pouvez le désactiver :

(Vpy27) root:~# deactivate   

Pour créer un environnement virtuel pour python 3.4 :

root:~# which python3.4

/usr/local/bin/python3.4

root:~# virtualenv -p /usr/local/bin/python3.4 Vpy34

root:~# source Vpy34/bin/activate

(Vpy34) root:~# python -V
Python 3.4.4

Il est également possible de créer un environnement virtuel avec des packs de sites déjà disponibles.

12voto

Corey Goldberg Points 15625

Dépend de votre système/plateforme...

Je suis actuellement sous Ubuntu 10.10 et j'ai installé les versions 2.6 et 3.1. Le système python par défaut est 2.6, et python3 est installé comme un paquet supplémentaire.

corey@studio17:~$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
corey@studio17:~$ python3
Python 3.1.2 (release31-maint, Sep 17 2010, 20:27:33) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

De la même manière, sous Windows, j'ai installé 2.6 et 3.1 (en C:\Python26 y C:\Python31 )

facile de passer de l'un à l'autre.


Il y a également quelques différences syntaxiques entre 2.x et 3.x dont vous devrez être conscient (print est une fonction, etc).

0 votes

Comment passe-t-on de l'un à l'autre ? Par exemple, si j'utilise gedit et que je veux que le code soit en 2 pendant un certain temps, puis que je veux travailler sur quelque chose en 3, comment puis-je le modifier de sorte que lorsque le programme est exécuté dans l'invite de commande, il soit en 3 et non en 2 ?

0 votes

@rayne : Quand vous appelez python myprog.py à l'invite de commande, il utilisera votre version par défaut de Python. Pour changer de version, il suffit donc d'appeler l'autre version. python3 myprog.py pourrait fonctionner, ou vous pourriez avoir à faire C:\Python31\python.exe myprog.py .

8voto

user3065757 Points 16

Dans Windows 10, c'est beaucoup plus facile que ce qui a été donné par les utilisateurs ci-dessus.

Installez les deux versions dans des dossiers séparés, puis allez dans la variable d'environnement et ajoutez le chemin pour les deux versions.

Maintenant, chaque fois que vous voulez exécuter une version particulière, il suffit de changer son ordre (chemin) et de la déplacer au-dessus des autres versions, puis de redémarrer la commande et de taper python cette fois, vous verrez que seule cette version particulière de python sera exécutée.

How to switch between python 2 and 3

Par exemple, dans mon cas, j'ai deux versions de python : une dans anaconda (v3.0.6) et une autre dans python 2.7.

Chaque fois que je veux exécuter la 2.7, je déplace son chemin au-dessus de la version anaconda, comme vous pouvez le voir dans la capture d'écran ci-dessus, et je le déplace en dessous lorsque je veux exécuter la version anaconda.

3voto

Elijah W. Gagne Points 959

Je suis sous Windows 10 avec Python 3.5 et 2.7. En utilisant PowerShell, voici comment je passe d'une version à l'autre.

############################################################
# Switch to Python 2.7
############################################################

# Remove python 3.5 from PATH
$current_path = [Environment]::GetEnvironmentVariable("Path", "User")
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;"
$new_path = $current_path.replace($python3_path, "")
[Environment]::SetEnvironmentVariable("Path", $new_path, "User")

# Add python 2.7 to PATH
# Run PowerShell as administrator
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine")
$python2_path = "C:\Python27\;C:\Python27\Scripts;"
$new_path = $python2_path + $current_path
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine")

# Restart PowerShell to see change

# Confirm change
python --version

############################################################
# Switch to Python 3.5
############################################################

# Remove python 2.7 from PATH
# Run PowerShell as administrator
$current_path = [Environment]::GetEnvironmentVariable("Path", "Machine")
$python2_path = "C:\Python27\;C:\Python27\Scripts;"
$new_path = $current_path.replace($python2_path, "")
[Environment]::SetEnvironmentVariable("Path", $new_path, "Machine")

# Add python 3.5 to PATH
$current_path = [Environment]::GetEnvironmentVariable("Path", "User")
$python3_path = "C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\Scripts\;C:\Users\REPLACEUSER\AppData\Local\Programs\Python\Python35-32\;"
$new_path = $python3_path + $current_path
[Environment]::SetEnvironmentVariable("Path", $new_path, "User")

# Restart PowerShell to see change

# Confirm change
python --version

Notez que vous devrez mettre à jour les chemins pour refléter vos versions de Python et votre profil utilisateur.

1voto

GreenMatt Points 6301

Il existe plusieurs façons de procéder sur les systèmes *nix :

  • Installez-les dans des répertoires séparés (par exemple /usr/local/python2 et /usr/local/python3) et créez un lien (par exemple /usr/bin/python) que vous modifiez pour qu'il pointe vers l'exécutable que vous souhaitez utiliser.
  • Même installation que ci-dessus, mais configurez des commandes python séparées (par exemple /usr/bin/python2 et /usr/bin/python3) et appelez-les lorsque vous voulez invoquer python. Ou bien faites en sorte que la commande python utilise par défaut l'une d'entre elles et une pythonN pour l'autre (N = 2 ou 3, selon ce qui n'est pas la valeur par défaut).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X