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

je lis How To Learn Python The Hard Way, qui utilise 2. Récemment découvert inventer avec Python, qui utilise 3.

puis-je télécharger python 3, et l'utiliser lorsque je lis inventez avec Python, puis revenir à python 2 lorsque je veux lire Comment apprendre Python à la dure. Si oui, comment choisir la version que j'utilise?

30
demandé sur rayne117 2010-12-03 01:55:23

10 réponses

en utilisant '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 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 souci d'affecter d'autres projets. Il permet plusieurs installations côte à côte de Python, une pour chaque projet. Il n'installe pas réellement de copies séparées de Python, mais il fournit une façon intelligente de garder différents environnements de projet isolés.

Comment faire pour 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 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, il doit être activé:

root:~# source Vpy27/bin/activate

le nom de l'environnement virtuel actuel apparaîtra maintenant à gauche de l'invite:

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

Installer 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 terminé de travailler dans l'environnement virtuel pour l'instant, vous pouvez la 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 y a aussi un moyen de créer un environnement virtuel avec déjà disponible site-packages.

23
répondu Vijay Shetty 2016-04-12 13:14:10

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

Je suis actuellement sur Ubuntu 10.10 et j'ai les versions 2.6 et 3.1 installées. 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 même, sur Windows, j'ai 2.6 et 3.1 installés (dans C:\Python26 et C:\Python31)--2-->

facile de faire des allers-retours.


également.. il y a des différences syntaxiques entre 2.x et 3.x que vous devez être conscient de (print est une fonction, etc).

10
répondu Corey Goldberg 2010-12-02 23:21:38

Je suis sur 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 aurez besoin de mettre à jour les chemins pour refléter vos versions Python et votre profil d'utilisateur.

3
répondu Elijah W. Gagne 2016-08-16 01:23:16

Un couple de façons sur les systèmes *nix:

  • installez-vous 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 changez pour pointer vers l'exécutable que vous voulez utiliser.
  • même installation que ci-dessus, mais configurer des commandes python séparées (par exemple /usr/bin/python2 et /usr/bin/python3) et les appeler quand vous voulez invoquer python. Ou avoir la commande python par défaut à l'un de ceux-ci et un pythonN pour le autre (N = 2 ou 3, si ce n'est pas la valeur par défaut).
1
répondu GreenMatt 2010-12-02 23:05:20

Oui, vous pouvez. Sur ma machine au moins (Vista), v2 et v3 ont des idles complètement séparés me permettant d'exécuter n'importe quelle version que je me sens comme quand je me sens comme elle. Donc, aller de l'avant et télécharger la v3.

1
répondu John 2010-12-07 05:29:55

Dans windows 10, il 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 lancer une version particulière, il suffit de changer son ordre (chemin) et de le déplacer vers le haut d'une autre version, puis redémarrer le cmd et taper python cette fois, vous verrez que seule cette version particulière de python exécuter.

How to switch between python 2 and 3

par exemple dans mon cas, j'ai deux versions de python one dans anaconda(v3.0.6) et un autre est python 2.7

chaque fois que je veux lancer le 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 le déplacer ci-dessous quand je veux lancer la version anaconda.

1
répondu user3065757 2017-07-04 08:48:22

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

Le PEP, l'article dit:

ligne Shebang analyse

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

#! interpreter [optional-arg]

il suffit donc d'ajouter 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 à py.exe lanceur:

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

C:\Users\Administrator>py -2 my_script.py
0
répondu xmcp 2016-08-22 03:13:05

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 le chemin et éditez et ensuite faites le chemin de la version python que vous voulez utiliser ci-dessus que vous ne voulez pas utiliser [en cliquant sur le bouton moveu Up]
  5. redémarrez powershell.
  6. python -- version
0
répondu Ahmed Teir 2017-04-15 07:15:05

j'ai essayé 6 solutions jusqu'à présent, comme:

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

également en utilisant le paquet virtualenvwrapper etc. Aucun d'entre eux travaillaient.

j'ai Python 3.6 et Python2.7 sur ma machine Windows 10, donc j'ai renommé C:\Python27\python.exe à python2.exe et C:\Python36\python.exe à python3.exe ou vous pouvez même utiliser python36.format exe. Bien sûr. C:\Python27, C:\Python27\Scripts, C:\Python36, C:\Python36\Scripts ajouté au chemin des Variables D'environnement.

(1) pour python3 juste type:

python3-m virtualenv venv3

(2) Aller à la venv dossier, activez:

Scripts\activer.chauve-souris

(3) (venv3) montre qu'il est activé:

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

(4) et de vérifier ensuite si c'est vraiment 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 ça aidera.

0
répondu Jozsef Turi 2017-07-28 17:24:38

Voici mes 2 cents.

si vous utilisez un système unix (Ubuntu, etc..), et 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 va créer un répertoire distinct python3

vous avez fini.

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

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

de même, pour allumer le python2.x et python 3.x utilisation de l'interprète python et python3 respectivement.

je vois que certaines réponses vous pointent vers virtualenv, Je ne pense pas que ce soit ce que vous demandiez, virtualenv est utilisé pour isoler les environnements Python.

0
répondu SeasonalShot 2018-09-22 12:25:43