Ich habe Python 2.6
und Python 3.1
unter Windows 7 installiert und Umgebungsvariable gesetzt : path = d:\python2.6
.
Wenn ich laufe python
in cmd
, zeigt es die Python - Version 2.6, das ist , was ich will!
Als ich jedoch ein Skript in eine Bat-Datei schrieb und es ausführte, war die angezeigte Python-Version 3.1.
import sys
print (sys.version)
Was ist hier los?
python scriptfile.py
.Antworten:
Dies ist der Fall, wenn Sie beide Versionen installiert haben.
Gehe zu
This PC -> Right-click -> Click on Properties -> Advanced System Settings.
Sie werden das sehen
System Properties
. Von hier aus navigieren Sie zur"Advanced"
Registerkarte -> Klicken Sie aufEnvironment Variables
.Sie sehen eine obere Hälfte für die Benutzervariablen und die untere Hälfte für
System variables
.Aktivieren Sie das
System Variables
und doppelklicken Sie aufPath
(um den Pfad zu bearbeiten).Suchen Sie nach dem Pfad von Python (den Sie ausführen möchten, z. B. Python 2.x oder 3.x), und verschieben Sie ihn an den Anfang der Pfadliste.
Starten Sie die Eingabeaufforderung neu. Wenn Sie nun die Version von Python überprüfen, sollte die erforderliche Version korrekt angezeigt werden.
quelle
Das letzte Python, das Sie installieren und das sich in der Umgebung registriert, ist die Standardeinstellung (ich kann mich nicht an den genauen Wortlaut im Installationsprogramm erinnern, aber es ist die erste Option). Es gibt eine Reihe von Einstellungen. Um sicherzustellen, dass alle konsistent registriert sind, installieren Sie einfach die Version neu, die Sie als Standard verwenden möchten.
Wenn Sie eine andere Version installieren möchten, diese aber nicht als Standardversion verwenden möchten, deaktivieren Sie einfach die Registrierungsoption während der Installation.
Bearbeiten (19. Mai 2012)
Ab Python 3.3 installiert das Python-Installationsprogramm Python Launcher für Windows . Dieses Programm (
py.exe
) ist den Python-Dateierweiterungen zugeordnet und sucht nach einem "shebang" -Kommentar, um die auszuführende Python-Version anzugeben. Auf diese Weise können viele Versionen von Python nebeneinander existieren und Python-Skripte können bei Bedarf explizit angeben, welche Version verwendet werden soll. Wenn dies nicht angegeben ist, wird standardmäßig die neueste Python 2.X-Version für die aktuelle Architektur (x86 oder x64) verwendet. Diese Standardeinstellung kann über einepy.ini
Datei oder einePY_PYTHON
Umgebungsvariable angepasst werden. Weitere Informationen finden Sie in den Dokumenten .Stellen Sie einfach sicher, dass Python 3.3 das letzte installierte Python ist, das sich bei Windows registriert hat. Wenn andere Versionen von Python später installiert werden, registrieren Sie sie nicht in der Umgebung, damit der Launcher die Standardeinstellung bleibt.
So überprüfen Sie, ob der Launcher über die Konsole korrekt registriert ist:
C:\>assoc .py .py=Python.File C:\>ftype Python.File Python.File="C:\Windows\py.exe" "%1" %*
Oben sind
.py
Dateien demPython.File
Typ zugeordnet. Die Befehlszeile fürPython.File
ist der Python Launcher, der im Windows-Verzeichnis installiert ist, da er sich immer im PATH befindet.Damit die Zuordnung funktioniert, führen Sie Skripte über die Befehlszeile mit
script.py
nicht "python script.py" aus, andernfallspython
wird stattdessen ausgeführtpy
.py.exe
kann auch mit Schaltern ausgeführt werden, um eine Python-Version zu erzwingen:py -3 script.py # force latest Python 3.X version to be used.
Fügen Sie außerdem
.py;.pyw;.pyc;.pyo
derPATHEXT
Umgebungsvariablen hinzu, und die Befehlszeile kann einfachscript
ohne Erweiterung sein.quelle
py -3.8
undpy -3.8-32
startet 64- bzw. 32-Bit-Python.Wenn Sie den Befehl 'py' ausführen, erfahren Sie, welche Version ausgeführt wird. Wenn Sie derzeit 3.x ausführen und zu 2.x wechseln müssen, müssen Sie den Schalter '-2' verwenden.
py -2
Wenn Sie von Python 2.x zu Python 3.x wechseln müssen, müssen Sie den Schalter '-3' verwenden
py -3
Wenn Sie Python 3.x als Standardversion haben möchten, müssen Sie die Umgebungsvariable 'PY_PYTHON' erstellen und ihren Wert auf 3 setzen.
quelle
py -2 test.py
python test.py
Siehe hier für den Originalbeitrag
; ; 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
Daher habe ich auf meinem System eine
py.ini
Dateic:\windows\
mit dem folgenden Inhalt erstellt, unter der py.exe vorhanden ist:[defaults] python=3
Wenn Sie jetzt auf eine .py-Datei doppelklicken, wird sie von der neuen Standardversion ausgeführt. Jetzt verwende ich den Shebang nur noch
#! python2
für meine alten Skripte.quelle
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe\default
.py
Dateien einpython.exe
quelle
Wenn Sie ein Windows-Benutzer sind und eine Version von Python 3.3 oder höher haben, sollten Sie den Python Launcher für Windows haben auf Ihrem Computer installiert sein. Dies ist die empfohlene Methode zum Starten aller Python-Skripte (unabhängig von der für das Skript erforderlichen Python-Version) ).
Als Benutzer
Geben Sie immer
py
statt ein,python
wenn Sie ein Skript über die Befehlszeile ausführen.Richten Sie die Standardprogrammzuordnung Ihres Explorers "Öffnen mit ..." ein
C:\Windows\py.exe
Legen Sie die Zuordnung der Befehlszeilendateierweiterung für die Verwendung des Python Launcher für Windows fest (dadurch wird die Eingabe
py
optional):ftype Python.File="C:\windows\py.exe" "%L" %*
ftype Python.NoConFile="C:\Windows\pyw.exe" "%L" %*
Legen Sie Ihre bevorzugte Standardversion fest, indem Sie die
PY_PYTHON
Umgebungsvariable festlegen (zPY_PYTHON=3.7)
. B. können Sie durch Eingabe sehen, welche Python-Version Ihre Standardversion istpy
. Sie können auch Standardversionen für Python 3 und Python 2 festlegenPY_PYTHON3
oderPY_PYTHON2
angeben (wenn Sie mehrere haben).Wenn Sie eine bestimmte Python-Version ausführen müssen, können Sie diese verwenden
py -M.m
(wobeiM
die Hauptversion undm
die Nebenversion ist). Führt beispielsweisepy -3
eine installierte Version von Python 3 aus.Listen Sie die installierten Versionen von Python mit auf
py -0
.Als Drehbuchautor
Fügen Sie oben in Ihrem Skript eine Shebang-Zeile ein, die die Hauptversionsnummer von Python angibt. Wenn das Skript mit keiner anderen Nebenversion kompatibel ist, geben Sie auch die Nebenversionsnummer an. Zum Beispiel:
#!/usr/bin/env python3
Sie können die Shebang-Linie auch verwenden, um eine virtuelle Umgebung anzuzeigen (siehe PEP 486 unten).
Siehe auch
quelle
Wenn Sie wissen, welche
Environment variables
Systemvariable aufgerufen wirdpath
, sollten Sie berücksichtigen, dass jede Version einer Binärdatei, die früher verfügbar ist , standardmäßig verwendet wird.Schauen Sie sich das Bild unten an, ich habe 3 verschiedene Python-Versionen, aber Python
3.8
wird standardmäßig verwendet, da es früher als die beiden anderen kam. (Bei erwähntem Bild bedeutet früher höher!)quelle
Das hat bei mir funktioniert:
Gehe zu
Control Panel\System and Security\System
wählen
Advanced system settings from the left panel from Advanced tab click on Environment Variables
Suchen Sie im Abschnitt Systemvariablen nach ( erstellen, wenn nicht vorhanden )
und setzen
oder Ihre gewünschte Version
Sie müssen CMD neu starten.
Falls es immer noch nicht funktioniert, möchten Sie möglicherweise nur die gewünschte Version in der PATH-Variablen belassen.
quelle
Diese Arbeit für mich.
Wenn Sie Python 3.6 verwenden möchten, müssen Sie Python 3.6 oben in der Liste verschieben.
Gleiches gilt für Python2.7. Wenn Sie 2.7 als Standard haben möchten, stellen Sie sicher, dass Sie Python2.7 ganz oben in der Liste verschieben.
Schließen Sie dann eine beliebige cmd-Eingabeaufforderung und öffnen Sie sie erneut. Sie sollte wie erwartet funktionieren.
>>> Python 3.6
quelle
Nach der Veröffentlichung von Python 3.3 ist es am einfachsten, das hier beschriebene Dienstprogramm py.exe zu verwenden: http://www.python.org/dev/peps/pep-0397/
Sie können eine Python-Version in Ihrer Skriptdatei mithilfe einer UNIX-Direktive angeben. Es gibt auch Befehlszeilen- und Umgebungsvariablenoptionen zum Steuern, welche Version von Python ausgeführt wird.
Der einfachste Weg, um dieses Dienstprogramm zu erhalten, ist die Installation von Python 3.3 oder höher.
quelle
Nichts oben hat funktioniert, das hat bei mir funktioniert:
ftype Python.File=C:\Path\to\python.exe "%1" %*
Dieser Befehl sollte an der als Administrator gestarteten Eingabeaufforderung ausgeführt werden
Warnung: Selbst wenn der Pfad in diesem Befehl auf python35 festgelegt ist, wird bei Installation von python36 die Standardeinstellung auf python36 festgelegt. Um dies zu verhindern, können Sie den Ordnernamen vorübergehend von ändern
Python36
zuxxPython36
dem folgenden Befehl ausführen und dann die Änderung der 36 Ordner Python entfernen.quelle
python
es an der Eingabeaufforderung aufgerufen wird.Überprüfen Sie, welches System derzeit verwendet wird:
Fügen Sie den Umgebungsvariablen des Systems den Hauptordner (z. B. C / ProgramFiles) und den Skriptspeicherort (C / ProgramFiles / Scripts) hinzu. Fügen Sie sowohl die 3.x-Version als auch die 2.x-Version hinzu
Die Pfadposition wird innerhalb der Umgebungsvariablen eingestuft. Wenn Sie Python 2.x verwenden möchten, setzen Sie einfach den Pfad von Python 2.x an die erste Stelle. Wenn Sie für Python 3.x möchten, setzen Sie einfach 3.x an die erste Stelle
Dies verwendet Python 2
quelle
Verwenden Sie den
SET
Befehl in Windows CMD, um vorübergehend die Standardpython für die aktuelle Sitzung festzulegen.SET PATH=C:\Program Files\Python 3.5
quelle
Versuchen Sie, den Pfad in der Windows-Registrierung zu ändern (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment).
Vorsichtsmaßnahme: Brechen Sie nicht die Registrierung :)
quelle