web-dev-qa-db-fra.com

Comment basculer entre Python 2 et 3 et inversement?

Je suis en train de lire Comment apprendre Python à la dure, qui en utilise 2. Récemment découvert Invent With Python, qui en utilise 3.

Puis-je télécharger python 3 et l'utiliser lorsque je lis Invent With Python, puis revenir à python 2 lorsque je souhaite lire Comment apprendre à utiliser Python The Hard Way. Si oui, comment choisirais-je la version que j'utiliserais?

32
rayne117

En utilisant 'virtualenv' , vous pouvez avoir différents environnements Python isolés sur une même machine. Vous pouvez également basculer à tout moment entre les différentes versions d'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 vous soucier d’affecter d’autres projets. Il permet plusieurs installations côte à côte de Python, une pour chaque projet. En réalité, il n’installe pas de copies distinctes de Python, mais il offre un moyen astucieux de garder différents environnements de projet isolés. 

Comment 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 un 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, vous devez l'activer:

root:~# source Vpy27/bin/activate

Le nom de l'environnement virtuel actuel apparaîtra à 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 existe également un moyen de créer un environnement virtuel avec les packages de site déjà disponibles.

23
Vijay Shetty

dépend de votre système/plate-forme ...

Je suis actuellement sur Ubuntu 10.10 et les versions 2.6 et 3.1 sont installées. Le système par défaut python est 2.6 et python3 est installé en tant que package 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 même, sous Windows 2.6 et 3.1, je suis installé (dans C:\Python26 et C:\Python31)

facile à basculer.


aussi .. il y a quelques différences syntaxiques entre les versions 2.x et 3.x que vous devrez connaître (impression est une fonction, etc.).

11
Corey Goldberg

Je suis sur Windows 10 avec Python 3.5 et 2.7. À l'aide de PowerShell, voici comment passer 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 afin de refléter vos versions Python et votre profil utilisateur.

3
Elijah W. Gagne

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

Installez la version dans des dossiers distincts, puis accédez à la variable d'environnement et ajoutez le chemin d'accès aux deux versions.

Maintenant, chaque fois que vous voulez exécuter une version particulière, modifiez simplement son ordre (chemin) et déplacez-le au-dessus d'une autre version, puis redémarrez cmd et tapez 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, python 2.7.

comme je peux le voir sur la capture d'écran ci-dessus, je le déplace au-dessus de la version anaconda lorsque je souhaite exécuter la version 2.7 lorsque je souhaite exécuter la version anaconda.

1
user3065757

Oui, vous pouvez. Sur ma machine au moins (Vista), les versions 2 et 3 ont des périodes d'inactivité complètement distinctes, ce qui me permet d'exécuter la version de mon choix. Alors allez-y et téléchargez la v3.

1
John

Quelques façons sur les systèmes * nix:

  • Installez-le dans des répertoires distincts (par exemple,/usr/local/python2 et/usr/local/python3) et créez un lien (par exemple,/usr/bin/python) que vous modifiez pour pointer sur l'exécutable que vous souhaitez utiliser.
  • Même installation que ci-dessus, mais configurez des commandes python distinctes (par exemple,/usr/bin/python2 et/usr/bin/python3) et appelez-les lorsque vous souhaitez appeler python. Ou alors, la commande python utilise par défaut l'une de ces commandes et un pythonN pour l'autre (N = 2 ou 3, selon la valeur qui n'est pas la valeur par défaut).
1
GreenMatt

Si vous utilisez anaconda:

Créez un environnement Python 2 nommé py2, installez Python 2.7:

conda create --name py2 python=2.7

Activez et utilisez l'environnement Python 2:

LES FENÊTRES:

activate py2

LINUX, macOS:

source activate py2

Désactiver l'environnement Python 2:

LES FENÊTRES:

deactivate

macOS, LINUX:

source deactivate

De même pour py3

Créez un environnement Python 3 nommé py3, installez Python 3.5:

conda create --name py3 python=3.5

etc..

0
aveek

si vous utilisez Windows 10 et que vous avez Python 2.x et 3.x.

  1. panneau de configuration ouvert> système et sécurité> système 
  2. cliquez sur Paramètres système avancés.
  3. cliquez sur les variables d'environnement.
  4. cliquez sur chemin et éditez puis faites le chemin de la version de python que vous voulez utiliser ci-dessus que vous ne voulez pas utiliser
  5. redémarrer PowerShell.
  6. python --version 
0
Ahmed Teir

J'ai déjà essayé 6 solutions, comme:

virtualenv --python=python py27env
mkvirtualenv --python=python3 py3env etc..

utilisant également le paquet virtualenvwrapper etc . Aucun d’entre eux n’a fonctionné.

J'ai Python 3.6 et Python2.7 sur ma machine Windows 10, alors j'ai renommé C:\Python27\python.exe en python2.exe et C:\Python36\python.exe en python3.exe ou vous pouvez même utiliser Format python36.exe . Bien sûr, C:\Python27, C:\Python27\Scripts, C:\Python36, C:\Python36\Scripts ajoutés aux variables d'environnement PATH.

(1) Pour python3, tapez simplement:

python3 -m virtualenv venv3

(2) Allez dans le dossier venv, activez-le avec:

Scripts\activate.bat

(3) (venv3) montre que c'est activé:

(venv3) HOME1@PC C:\Builts\venv3

(4) puis vérifiez s'il s'agit bien de 3.6:

python --version

Python 3.6.0

Pour python2:

python2 -m virtualenv venv2

Résultat:

(venv2) HOME1@PC C:\Builts\venv2
python --version
Python 2.7.9

J'espère que cela aidera.

0
Jozsef Turi

Sous Windows, le lanceur Python peut le faire pour vous.

L'article de PEP dit:

Analyse de ligne Shebang

Si le premier argument de ligne de commande ne commence pas par un tiret ('-') caractère, une tentative sera faite pour ouvrir cet argument en tant que fichier et analysé pour une ligne de Shebang selon les règles de [1] ::

#! interpreter [optional-arg]

Ajoutez donc simplement un Shebang au début de votre script Python, comme ceci:

#! python3
#coding=utf-8

import sys
print(sys.version)
...

Ou vous pouvez passer un paramètre de ligne de commande au lanceur py.exe:

C:\Users\Administrator>py -3 my_script.py

C:\Users\Administrator>py -2 my_script.py
0
xmcp

Voici mes 2 cents.

Si vous êtes sur un système basé sur Unix (Ubuntu, etc.), et que vous avez actuellement Python 2.x. Allez-y et téléchargez le python 3.x à partir de Python.org

Après l’installation, il créera un répertoire séparé python3

Vous avez terminé. 

Pour exécuter vos programmes avec python2.x, utilisez python filename.py

Pour exécuter vos programmes avec python3.x, utilisez python3 filename.py

De même, pour lancer les interprètes python2.x et python 3.x, utilisez respectivement python et python3.

Je vois certaines des réponses qui vous dirigent vers virtualenv. Je ne pense pas que ce soit ce que vous demandiez. Virtualenv est utilisé pour isoler les environnements Python.

0
SeasonalShot