web-dev-qa-db-fra.com

Comment exécuter python 2 et 3 dans Windows 7?

Existe-t-il un moyen d'installer python 3 sur une installation de python 2 sans rien ruiner? Le problème principal est que j'ai du code qui s'exécute par "python xxxxx .py abc123 ". Existe-t-il un moyen de changer python 3 pour être" python3 xxxx.py abc123 "? La même commande python est le conflit

41
SwimBikeRun

Il existe un meilleur moyen de coexistence/lancement de Python 2 et Python 3 sous Windows. Le Python 3.3 a introduit le Lanceur Python pour Windows (voir http://www.python.org/dev/peps/pep-0397/ ).

Après l'installation de Python 3.3, le py.exe et pyw.exe est copié sur votre c:\Windows et les associations sont définies pour le .py extension pour qu'il utilise le lanceur. Par défaut, Python 2 est lancé pour py script.py. Le py -3 script.py lance Python 3. (Cela signifie également qu'aucun chemin d'accès pour Python ne doit être ajouté à l'environnement - le C:\Windows est déjà dans le PATH.)

Le meilleur de tous, c'est que #!python2 dans le script provoque le lancement via Python 2, le #!python3 provoque le lancement du script via Python 3. De cette façon, vous pouvez utiliser des scripts pour les deux versions de Python, et vous pouvez les lancer de manière unifiée - py script.py ou en cliquant simplement sur l'icône du script.

Il y a plus de détails mais c'est essentiellement ce dont vous avez besoin.

Mise à jour: Lorsque vous utilisez Python lanceur pour Windows, vous pouvez également lancer votre Python = script de la fenêtre cmd en tapant > script.py (c'est-à-dire sans taper explicitement py-- le nom du lanceur Python - devant le nom du script) ou même en tapant le nom sans le .py extension (c'est juste > script).

De cette façon, les choses commencent à ressembler à la façon Unix de nommer les scripts (sans avoir besoin de l'extension); cependant, vous devez encore ajouter le .py extension lors de la création du fichier de script.

(Oui, c'est un peu plus compliqué que l'approche Unix. C'est la différence entre le "Pensez d'abord!" et le "Vendez d'abord!" approches des développements des OS. Quoi qu'il en soit, mes félicitations à l'équipe de développement Python pour tirer le meilleur parti de Windows - en libérant le lanceur Python pour Windows.)

92
pepr

Je ne sais pas si cela répondrait à vos besoins, mais vous devriez jeter un œil à virtualenv: http://www.virtualenv.org/en/latest/

Cela vous permettra de créer des environnements séparés pour Python 2 et 3 (en utilisant l'indicateur -p). Si votre cas d'utilisation est quelque chose pour lequel cela ne fonctionnerait pas, mettez à jour la question avec des détails plus spécifiques). et je suis sûr que vous obtiendrez d'autres suggestions.

6
Shaun

En supposant que vous installez python3 dans un répertoire séparé, vous pouvez également renommer l'exécutable python 3 en python3.exe).

2
MichaelJCox

Vous devez modifier votre variable d'environnement pour inclure votre chemin Python 3 ou Python 2).

0
FA5er