Comment configurer la version Python par défaut dans Windows
j'ai installé Python 2.6 et Python 3 sur Windows 7 et set environment variable: path = d:python2.6
.
quand j'exécute python
dans cmd, il affiche la version python est 2.6, ce qui est vrai!
mais quand j'ai écrit un script dans un fichier bat et l'ai lancé, la version python affichée était 3.1.
Qu'est-ce qui ne va pas ici?
le code du script dans le fichier bat:
import sys
print (sys.version)
10 réponses
le dernier Python que vous installez qui s'enregistre dans l'environnement est le Python par défaut (Je ne me souviens pas de la formulation exacte dans l'installateur, mais c'est la première option). Il y a un certain nombre de paramètres donc pour s'assurer qu'ils sont tous enregistrés de manière cohérente, il suffit de réinstaller la version que vous voulez être la version par défaut.
si vous voulez installer une autre version mais que vous ne voulez pas qu'elle soit désactivée par défaut, il suffit de désactiver l'option d'enregistrement pendant l'installation.
Edit (19 Mai 2012)
à partir de Python 3.3, L'installateur de Python installe Python Launcher for Windows . Ce programme ( py.exe
) est associé aux extensions de fichiers Python et recherche un commentaire" shebang " pour spécifier la version python à exécuter. Cela permet à de nombreuses versions de Python de coexister et permet aux scripts Python de spécifier explicitement quelle version utiliser, si désiré. Si elle n'est pas spécifié, la valeur par défaut est D'utiliser le dernier Python 2.Version X pour l'architecture actuelle (x86 ou x64). Cette valeur par défaut peut être personnalisée au moyen d'une variable d'environnement py.ini
ou PY_PYTHON
. Voir le docs pour plus de détails.
assurez-vous que le Python 3.3 est le dernier Python installé qui s'est enregistré avec Windows. Si d'autres versions de Python sont installés plus tard pas pour les enregistrer avec l'environnement, donc le lanceur restera par défaut.
Voici comment vérifier si le lanceur 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, .py
les fichiers sont associés avec le type Python.File
. La ligne de commande pour Python.File
est le lanceur Python, qui est installé dans le répertoire Windows car il est toujours dans le chemin.
pour que l'association fonctionne, exécutez des scripts à partir de la ligne de commande avec script.py
, pas "python " script.py", sinon python
sera lancé au lieu de py
. py.exe
peut aussi être exécuté avec des commutateurs pour forcer une version Python:
py -3 script.py # force latest Python 3.X version to be used.
de plus, ajouter .py;.pyw;.pyc;.pyo
à la variable d'environnement PATHEXT
et alors la ligne de commande peut simplement être script
sans extension.
exécuter la commande 'py' vous indiquera quelle version vous utilisez. Si vous exécutez actuellement 3.x et vous devez passer à 2.x, vous aurez besoin d'utiliser le commutateur '-2'
py -2
si vous devez passer de python 2.x à python 3.x vous devrez utiliser ' -3 'switch
py -3
si vous voulez avoir Python 3.x en tant que version par défaut, vous devrez créer la variable D'environnement 'PY_PYTHON' et définir sa valeur à 3.
Voir ici pour le post 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 quand vous double-cliquez sur un .PY file, il sera exécuté par la nouvelle version par défaut. Maintenant j'utilise seulement le Shebang #! python2
sur mes vieux scripts.
- modifier la clé de registre
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe\default
- définit le programme par défaut pour ouvrir
.py
aux fichierspython.exe
maintenant que Python 3.3 est sorti, il est plus facile d'utiliser le py.utilitaire exe décrit ici: http://www.python.org/dev/peps/pep-0397/
il vous permet de spécifier une version Python dans votre fichier script en utilisant une directive de style UNIX. Il existe également des options de ligne de commande et de variables d'environnement pour contrôler quelle version de Python est exécutée.
la façon la plus simple d'obtenir cet utilitaire est d'installer Python 3.3 ou plus tard.
rien de ce qui précède n'a fonctionné, c'est 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
avertissement: même si le chemin dans cette commande est défini à python35, si vous avez installé python36 il va définir la valeur par défaut de python36. Pour empêcher cela, vous pouvez changer temporairement le nom du dossier de Python36
en xxPython36
, lancer la commande et ensuite supprimer le changement en Python 36 dossier.
cela a fonctionné pour moi:
passez à
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 recherche pour ( créer si n'existe pas )
PYTHONPATH
et set
C:\Python27\;C:\Python27\Scripts;
ou votre version désirée
vous devez redémarrer CMD.
au cas où il ne fonctionne toujours pas, vous pourriez vouloir ne laissez dans la variable PATH que la version désirée.
vérifier lequel du système utilise actuellement:
python --version
ajoute l'emplacement du dossier principal (par exemple c/ProgramFiles) et L'emplacement des Scripts (C/ProgramFiles/Scripts) aux Variables D'environnement du système. Ajouter les deux 3.version x et 2.X version
L'emplacement du chemin est classé à l'intérieur de la variable d'environnement. Si vous voulez utiliser Python 2.x a simplement mis le chemin de python 2.x d'abord, si vous voulez Python 3.x simplement mis 3.x premier
utiliser la commande SET
dans Windows CMD pour définir temporairement le python par défaut de la session courante.
SET PATH=C:\Program Files\Python 3.5
essayez de modifier le chemin d'accès dans le registre de windows (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment).
mise en garde: Ne pas briser le registre :)