142 votes

Comment définir la version par défaut de Python dans Windows ?

J'ai installé Python 2.6 y Python 3.1 sur Windows 7 et définir la variable d'environnement : path = d:\python2.6 .

Quand je cours python en cmd il affiche la version 2.6 de python, ce qui est ce que je veux !
Mais, lorsque j'ai écrit un script dans un fichier bat et que je l'ai exécuté, la version de python affichée était 3.1.

import sys
print (sys.version)

Qu'est-ce qui se passe ici ?

0 votes

Le code Python dans un fichier .bat ne sera pas interprété par Python, mais cmd.exe essaiera de l'interpréter, ce qui ne fonctionnera pas. Mettez le code Python dans un fichier .py et ensuite dans le fichier .bat mettez python scriptfile.py .

0 votes

Merci quand même ! J'ai trouvé le bon moyen, je modifie la valeur de l'élément de registre dans HKEY_LOCAL_CLASS \Applications\Python.exe\shell\open\command et ensuite cela fonctionne bien pour le fichier bat

16voto

pcboy Points 61

Voir ici pour l'article original

;
; This is an example of how a Python Launcher .ini file is structured.
; If you want to use it, copy it to py.ini and make your changes there,
; after removing this header comment.
; This file will be removed on launcher uninstallation and overwritten
; when the launcher is installed or upgraded, so don't edit this file
; as your changes will be lost.
;
[defaults]
; Uncomment out the following line to have Python 3 be the default.
;python=3

[commands]
; Put in any customised commands you want here, in the format
; that's shown in the example line. You only need quotes around the
; executable if the path has spaces in it.
;
; You can then use e.g. #!myprog as your shebang line in scripts, and
; the launcher would invoke e.g.
;
; "c:\Program Files\MyCustom.exe" -a -b -c myscript.py
;
;myprog="c:\Program Files\MyCustom.exe" -a -b -c

Ainsi, sur mon système, j'ai fait un py.ini fichier sous c:\windows\ où py.exe existe, avec le contenu suivant :

[defaults]
python=3

Maintenant, lorsque vous double-cliquez sur un fichier .py, il sera exécuté par la nouvelle version par défaut. Maintenant j'utilise seulement le Shebang #! python2 sur mes vieux scripts.

9voto

cuble Points 46
  1. Modifier la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe\default
  2. Définir le programme par défaut à ouvrir .py pour python.exe

9voto

George Points 832

Ça marche pour moi.

Si vous voulez utiliser le python 3.6, vous devez déplacer le python3.6 en haut de la liste.

Il en va de même pour la version 2.7 de python. Si vous voulez avoir la version 2.7 par défaut, assurez-vous de placer python2.7 tout en haut de la liste.

étape 1

enter image description here

étape 2

enter image description here

étape 3

enter image description here

puis fermez toute invite de commande cmd et ouvrez-la à nouveau, elle devrait fonctionner comme prévu.

python --version

Python 3.6

6voto

George B Points 344

Cela a marché pour moi :

Aller à

Control Panel\System and Security\System

sélectionnez

Advanced system settings from the left panel
from Advanced tab click on Environment Variables

Dans la section Variables système, recherchez ( créer si elle n'existe pas )

PYTHONPATH

et mettre

C:\Python27\;C:\Python27\Scripts;

ou la version de votre choix

Vous devez redémarrer CMD.

Si cela ne fonctionne toujours pas, vous pouvez laisser dans la variable PATH uniquement la version que vous souhaitez.

2voto

Gerald Points 349

Maintenant que Python 3.3 est sorti, il est plus facile d'utiliser l'utilitaire py.exe décrit ici : http://www.python.org/dev/peps/pep-0397/

Il vous permet de spécifier une version de Python dans votre fichier script en utilisant une directive de style UNIX. Il existe également des options de ligne de commande et de variable d'environnement pour contrôler la version de Python à exécuter.

La façon la plus simple d'obtenir cet utilitaire est d'installer Python 3.3 ou plus.

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