J'ai installé Python 2.6 et Python 3 sur Windows 7 et défini la variable d'environnement: path = d:\python2.6
.
Lorsque je lance python
dans cmd, la version 2.6 de python est affichée, ce qui est exact!
Mais quand j'ai écrit un script dans un fichier bat et que je l'ai exécuté, la version affichée de Python était 3.1.
Qu'est-ce qui ne va pas ici?
Le code du script dans le fichier bat:
import sys
print (sys.version)
Le dernier Python que vous installez et qui s'inscrit dans l'environnement est celui par défaut (je ne me souviens pas du libellé exact du programme d'installation, mais c'est la première option). Il existe un certain nombre de paramètres. Par conséquent, pour vous assurer qu'ils sont tous enregistrés de manière cohérente, réinstallez simplement la version que vous souhaitez utiliser par défaut.
Si vous souhaitez installer une autre version mais ne le souhaitez pas par défaut, désactivez simplement l'option d'enregistrement lors de l'installation.
Edit (19 mai 2012)
À partir de Python 3.3, le programme d’installation de Python installe Python Launcher pour Windows . Ce programme (py.exe
) est associé aux extensions de fichier Python et recherche un commentaire "Shebang" pour spécifier la version de Python à exécuter. Cela permet à de nombreuses versions de Python de coexister et aux scripts Python de spécifier explicitement la version à utiliser, le cas échéant. S'il n'est pas spécifié, la valeur par défaut consiste à utiliser la dernière version de Python 2.X pour l'architecture actuelle (x86 ou x64). Cette valeur par défaut peut être personnalisée via un fichier py.ini
ou une variable d'environnement PY_PYTHON
. Voir le docs pour plus de détails.
Assurez-vous simplement que Python 3.3 est le dernier Python installé qui se soit enregistré auprès de Windows. Si d'autres versions de Python sont installées ultérieurement, assurez-vous que not ne les enregistrez pas dans l'environnement, afin que le programme de lancement reste la valeur par défaut.
Voici comment vérifier si le programme de lancement est correctement enregistré depuis la console:
C:\>assoc .py
.py=Python.File
C:\>ftype Python.File
Python.File="C:\Windows\py.exe" "%1" %*
Ci-dessus, les fichiers .py
sont associés au type Python.File
. La ligne de commande pour Python.File
est le lanceur Python, qui est installé dans le répertoire Windows car il se trouve toujours dans le chemin PATH.
Pour que l'association fonctionne, exécutez les scripts à partir de la ligne de commande avec script.py
, pas "python script.py", sinon python
sera exécuté à la place de py
. py.exe
peut également être exécuté avec des commutateurs pour forcer une version Python:
py -3 script.py # force latest Python 3.X version to be used.
En outre, ajoutez .py;.pyw;.pyc;.pyo
à la variable d'environnement PATHEXT
. La ligne de commande peut alors être simplement script
sans extension.
L'exécution de la commande "py" vous indiquera la version en cours d'exécution. Si vous utilisez actuellement la version 3.x et que vous devez passer à la version 2.x, vous devrez utiliser le commutateur '-2'.
py -2
Si vous devez passer de python 2.x à python 3.x, vous devrez utiliser le commutateur -3.
py -3
Si vous souhaitez utiliser Python 3.x comme version par défaut, vous devez créer la variable d'environnement 'PY_PYTHON' et lui attribuer la valeur 3.
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 créé un fichier py.ini
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, je n'utilise que le Shebang #! python2
sur mes anciens scripts.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe\default
.py
à python.exe
Cela a fonctionné pour moi:
Aller à
Control Panel\System and Security\System
sélectionner
Advanced system settings from the left panel
from Advanced tab click on Environment Variables
Dans la section Variables système, recherchez ( créer si n'existe pas )
PYTHONPATH
et mettre
C:\Python27\;C:\Python27\Scripts;
ou votre version désirée
Vous devez redémarrer CMD.
Si cela ne fonctionne toujours pas, vous pouvez laisser dans la variable PATH uniquement la version de votre choix.
Maintenant que Python 3.3 est disponible, il est plus simple 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 Python dans votre fichier de script à l'aide d'une directive de style UNIX. Il existe également des options de ligne de commande et de variable d'environnement permettant de contrôler la version de Python exécutée.
Le moyen le plus simple d'obtenir cet utilitaire consiste à installer Python version 3.3 ou ultérieure.
Rien ci-dessus n'a fonctionné, voici ce qui a fonctionné pour moi:
ftype Python.File=C:\Path\to\python.exe "%1" %*
Cette commande doit être exécutée dans l'invite de commande lancée en tant qu'administrateur.
Attention: même si le chemin dans cette commande est défini sur python35, si vous avez installé python36, il sera paramétré par défaut sur python36. Pour éviter cela, vous pouvez modifier temporairement le nom du dossier de Python36
à xxPython36
, exécutez la commande, puis supprimez la modification apportée au dossier Python 36.
C'est si vous avez les deux versions installées.
Allez sur Ce PC -> Cliquez avec le bouton droit de la souris -> Cliquez sur Propriétés -> Paramètres système avancés.
Vous verrez les propriétés du système. À partir de là, accédez à l'onglet "Avancé" -> Cliquez sur Variables d'environnement.
Vous verrez une moitié supérieure pour les variables utilisateur et la moitié inférieure pour les variables système.
Vérifiez les variables système et double-cliquez sur le chemin (pour éditer le chemin).
Recherchez le chemin de Python (que vous souhaitez exécuter, par exemple Python 2.x ou 3.x) et déplacez-le en haut de la liste des chemins.
Redémarrez l'invite de commande. Lorsque vous vérifiez la version de Python, la version requise doit s'afficher correctement.
Vérifiez celui que le système utilise actuellement:
python --version
Ajoutez l’emplacement du dossier principal (C/ProgramFiles, par exemple) et l’emplacement des scripts (C/ProgramFiles/Scripts) aux variables d’environnement du système. Ajouter les versions 3.x et 2.x
L'emplacement du chemin est classé dans la variable d'environnement. Si vous voulez utiliser Python 2.x, mettez simplement le chemin de python 2.x en premier, si vous voulez pour Python 3.x, mettez tout d'abord 3.x
Utilisez la commande SET
dans Windows CMD pour définir temporairement le python par défaut pour la session en cours.
SET PATH=C:\Program Files\Python 3.5
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 python2.7 Si vous voulez utiliser la 2.7 par défaut, assurez-vous de déplacer python2.7 tout en haut de la liste.
étape 1
étape 2
étape 3
python --version
>>> Python 3.6