245 votes

Comment exécuter plusieurs versions de Python sous Windows

J'ai deux versions de Python installées sur ma machine (versions 2.6 et 2.5). Je veux utiliser la 2.6 pour un projet et la 2.5 pour un autre.

Comment puis-je préciser lequel je veux utiliser ?

Je travaille sous Windows XP SP2.

4 votes

Un bon conseil pour poser des questions est d'expliquer ce que vous avez essayé, et en quoi cela a échoué. Donc : Qu'avez-vous essayé, et en quoi cela n'a-t-il pas fonctionné ?

0 votes

Remarque : je n'ai pas trouvé de questions précédentes sur ce sujet sous Windows, j'ai donc modifié le titre pour le refléter.

1 votes

177voto

alexander Points 493

Lancer une autre copie de Python est aussi simple que de lancer le bon exécutable. Vous mentionnez que vous avez démarré une instance de Python, à partir de la ligne de commande, en tapant simplement python .

Sous Windows, cette fonction permet de parcourir le site Web de la société %PATH% la vérification d'un exécutable, soit un fichier batch ( .bat ), le fichier de commande ( .cmd ) ou un autre exécutable à exécuter (ceci est contrôlé par l'option PATHEXT variable d'environnement), qui correspond au nom donné. Lorsqu'il trouve le bon fichier à exécuter, le fichier est exécuté.

Maintenant, si vous avez installé deux versions de python 2.5 et 2.6, le chemin d'accès contiendra leurs deux répertoires, comme suit PATH=c:\python\2.5;c:\python\2.6 mais Windows arrêtera d'examiner le chemin lorsqu'il trouvera une correspondance.

Ce qu'il faut vraiment faire, c'est appeler explicitement l'une ou les deux applications, comme par exemple c:\python\2.5\python.exe o c:\python\2.6\python.exe .

L'autre solution consiste à créer un raccourci vers les sites respectifs de l python.exe en appelant l'un d'entre eux python25 et l'autre python26 vous pouvez alors simplement exécuter python25 sur votre ligne de commande.

72 votes

Comment créer ce raccourci

10 votes

Lorsque vous êtes dans Windows, naviguez jusqu'au dossier qui contient la version de python pour laquelle vous voulez créer un raccourci, puis faites un clic droit et créez un raccourci. Vous pouvez ensuite le renommer.

5 votes

Désolé de déterrer un post mort depuis longtemps, mais comment faire fonctionner le raccourci sans avoir besoin de l'extension .lnk ?

150voto

Piotr Dobrogost Points 14412

Ajoutant deux autres solutions au problème :

  • Utilisez pylauncher (si vous disposez de Python 3.3 ou d'une version plus récente, il n'est pas nécessaire de l'installer puisqu'il vient avec Python déjà) et soit ajouter des lignes shebang à vos scripts ;

#! c:\[path to Python 2.5]\python.exe - pour les scripts que vous voulez exécuter avec Python 2.5
#! c:\[path to Python 2.6]\python.exe - pour les scripts que vous voulez exécuter avec Python 2.6

ou au lieu d'exécuter python commande run pylauncher commande ( py ) en spécifiant la version de Python que vous souhaitez ;

py -2.6 - version 2.6
py -2 - dernière version installée 2.x
py -3.4 - version 3.4
py -3 - dernière version installée 3.x

  • Installer virtualenv et créer deux virtualenvs ;

virtualenv -p c:\[path to Python 2.5]\python.exe [path where you want to have virtualenv using Python 2.5 created]\[name of virtualenv]

virtualenv -p c:\[path to Python 2.6]\python.exe [path where you want to have virtualenv using Python 2.6 created]\[name of virtualenv]

par exemple

virtualenv -p c:\python2.5\python.exe c:\venvs\2.5

virtualenv -p c:\python2.6\python.exe c:\venvs\2.6

alors vous pouvez activer le premier et travailler avec Python 2.5 comme ceci
c:\venvs\2.5\activate
et quand vous voulez passer à Python 2.6, vous faites

deactivate  
c:\venvs\2.6\activate

1 votes

Pylauncher semble être une implémentation prototype de PEP 397 qui a été accepté en tant que Standards Track en 2011. Savez-vous pourquoi le lanceur n'est toujours pas distribué avec Python pour Windows ou pourquoi il n'existe toujours que l'implémentation prototype de Vinay Sajip ?

4 votes

Pylauncher est distribué avec Python à partir de la version 3.3 - cf. python.org/download/releases/3.3.0 . Je pense également que l'implémentation de Vinay Sajip est l'implémentation et pas seulement un prototype.

1 votes

Merci pour cette précision. Je pense que pylauncher devrait être distribué avec la dernière version de Python 2, car les personnes qui utilisent cette version sont plus susceptibles de vouloir installer plusieurs versions (et de le faire s'ils sont conscients de sa fonctionnalité et de sa disponibilité).

60voto

pepr Points 4263

À partir de Python 3.3, il existe la version officielle Lanceur Python pour Windows ( http://www.python.org/dev/peps/pep-0397/ ). Maintenant, vous pouvez utiliser le #!pythonX pour déterminer la version souhaitée de l'interpréteur également sous Windows. Voir plus de détails dans mon autre commentaire ou lire le PEP 397.

Résumé : El py script.py lance la version de Python indiquée dans #! ou Python 2 si #! est manquant. Le site py -3 script.py lance le programme Python 3.

2 votes

Voici la réponse que je cherche. J'utilise Windows 10 avec Python 2.7 et Python 3.4.3. Dans l'invite de commande, tapez "py [numéro_de_version_de_python]" ex : py -3 ou py invoquera la version de python que vous avez. Je pense que les variables d'environnement doivent être définies avant d'utiliser cette fonction.

3 votes

@Inuka : Aucune variable d'environnement ne doit être définie. Le programme d'installation de Python définit les associations avec le paramètre .py extension. Le lanceur lui-même est installé dans C:\Windows qui se trouve déjà dans le PATH . De cette façon, les PATH ne doivent pas être modifiées.

3 votes

Merci beaucoup pour votre réponse. De cette façon, nous pouvons également invoquer le pip. py -2 -m pip install SomePackage ou py -3.4.3 -m pip install SomePackage

57voto

Comme @alexander, vous pouvez créer un ensemble de liens symboliques comme ci-dessous. Placez-les dans un endroit qui est inclus dans votre chemin d'accès afin qu'ils puissent être facilement invoqués.

> cd c:\bin
> mklink python25.exe c:\python25\python.exe
> mklink python26.exe c:\python26\python.exe

Aussi longtemps que c : \bin ou l'endroit où vous les avez placés est sur votre chemin, vous pouvez maintenant aller

> python25

4 votes

Une idée intelligente. BTW mklink n'est disponible en mode natif que dans Windows Vista/2008+. Sur XP et Server 2003, un "hardlink" peut être créé à la place en utilisant fsutil hardlink create <new filename> <existing filename> et placer ou déplacer le <nouveau nom de fichier> quelque part dans votre chemin. Les hardlinks ne fonctionnent toutefois que sur le même lecteur.

0 votes

C'est une bonne solution, mais je ne suis pas sûr qu'elle fonctionne sans un système de fichiers basé sur NTFS.

0 votes

Oui, il faut prendre en charge les liens symboliques NTFS qui, je crois, ont été introduits dans Vista (je peux me tromper). L'utilisation sur XP nécessite l'utilisation d'un conducteur différent . On dirait qu'il a été désactivé à un moment donné avant la sortie générale.

7voto

Lennart Regebro Points 52510

Lorsque vous installez Python, il n'écrase pas les installations d'autres versions majeures. Ainsi, l'installation de Python 2.5.x n'écrasera pas Python 2.6.x, mais l'installation de 2.6.6 écrasera 2.6.5.

Vous pouvez donc simplement l'installer. Ensuite, vous appelez la version de Python que vous voulez. Par exemple :

C:\Python2.5\Python.exe

pour Python 2.5 sous Windows et

C:\Python2.6\Python.exe

pour Python 2.6 sous Windows, ou

/usr/local/bin/python-2.5

ou

/usr/local/bin/python-2.6

sur Windows Unix (y compris Linux et OS X).

Lors de l'installation sur Unix (y compris Linux et OS X), vous obtiendrez un fichier générique python installée, qui sera la dernière que vous avez installée. Ce n'est généralement pas un problème car la plupart des scripts appelleront explicitement /usr/local/bin/python2.5 ou quelque chose juste pour se protéger contre cela. Mais si vous ne voulez pas faire cela, et vous ne le ferez probablement pas, vous pouvez l'installer comme ceci :

./configure
make
sudo make altinstall

Notez le "altinstall" qui signifie qu'il va l'installer, mais il va no remplacer le python commandement.

Sous Windows, vous ne disposez pas d'une python pour autant que je sache, ce n'est donc pas un problème.

0 votes

Merci pour votre aide, répondez également à ma deuxième question : comment puis-je faire fonctionner les deux à la fois ? car j'ai réussi à passer de la 2.5 à la 2.6.

0 votes

@Bilal Basharat : Windows est un OS multi-tâches si vous voulez exécuter deux choses en même temps, il suffit de lancer les deux, donc je ne comprends pas votre question.

0 votes

Je travaille actuellement sur python2.5. Expliquez-moi comment je peux exécuter la 2.6 également ? Lorsque j'écris 'python' dans l'invite de commande de Windows pour entrer dans le shell python, python2.5 apparaît. Sur le lecteur C, les deux versions sont installées. C:\Python2.6\Python.exe. que python2.6 temporairement activé. dès que je quitte C:\Python2.6\ elle est redevenue la version 2.5

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