it-swarm.com.de

So führen Sie mehrere Python-Versionen unter Windows aus

Auf meinem Rechner waren zwei Versionen von Python installiert (Versionen 2.6 und 2.5). Ich möchte 2.6 für ein Projekt und 2.5 für ein anderes ausführen. 

Wie kann ich angeben, welche ich verwenden möchte?

Ich arbeite an Windows XP SP2.

141
Bilal Basharat

Das Ausführen einer anderen Kopie von Python ist so einfach wie das Starten der richtigen ausführbaren Datei. Sie erwähnen, dass Sie eine Python-Instanz von der Befehlszeile aus gestartet haben, indem Sie einfach python eingeben. 

Unter Windows müssen Sie die Umgebungsvariable% PATH% durchsuchen und nach einer ausführbaren Datei (Batch-Datei (.bat)), einer Befehlsdatei (.cmd) oder einer anderen ausführbaren Datei suchen, die dem angegebenen Namen entspricht. Wenn es die richtige Datei zum Ausführen findet, wird es ausgeführt.

Wenn Sie jetzt zwei Python-Versionen 2.5 und 2.6 installiert haben, enthält der Pfad beide Verzeichnisse, etwa PATH=c:\python\2.5;c:\python\2.6, aber Windows wird den Pfad nicht mehr überprüfen, wenn er eine Übereinstimmung findet.

Sie müssen unbedingt eine oder beide Anwendungen explizit aufrufen, z. B. c:\python\2.5\python.exe oder c:\python\2.6\python.exe.

Die andere Alternative besteht darin, eine Verknüpfung zu der jeweiligen python.exe zu erstellen, von der einer Python25 und der andere Python26 aufgerufen wird. Sie können dann einfach python25 in Ihrer Befehlszeile ausführen.

109
aodj

Zwei weitere Lösungen für das Problem hinzufügen:

  • Verwenden Sie pylauncher (wenn Sie Python 3.3 oder neuer haben, müssen Sie es nicht installieren, da kommt mit Python bereits)/oder fügen Sie Ihren Skripts Shebang-Zeilen hinzu.

#! c:\[path to Python 2.5]\python.exe - für Skripts, die mit Python 2.5 ausgeführt werden sollen
#! c:\[path to Python 2.6]\python.exe - für Skripts, die mit Python 2.6 ausgeführt werden sollen

oder statt python auszuführen, führen Sie den pylauncher-Befehl (py) aus, und geben Sie an, welche Python-Version Sie verwenden möchten.

py -2.6 - Version 2.6
py -2 - neueste installierte Version 2.x
py -3.4 - Version 3.4
py -3 - neueste installierte Version 3.x 

  • Installieren Sie virtualenv und erstellen Sie zwei 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]

zum Beispiel

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

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

dann können Sie die erste aktivieren und so mit Python 2.5 arbeiten
c:\venvs\2.5\activate
und wenn Sie zu Python 2.6 wechseln möchten, tun Sie dies 

deactivate  
c:\venvs\2.6\activate
75
Piotr Dobrogost

Ab Python 3.3 gibt es den offiziellen Python Launcher für Windows ( http://www.python.org/dev/peps/pep-0397/ ). Jetzt können Sie den #!pythonX verwenden, um die gewünschte Version des Interpreters auch unter Windows zu ermitteln. Weitere Details in meinem anderen Kommentar oder lesen Sie die PEP 397.

Summary: Der py script.py startet die in #! oder Python 2 angegebene Python-Version, falls #! fehlt. Der py -3 script.py startet den Python 3.

45
pepr

Wie bei @alexander können Sie wie folgt eine Reihe symbolischer Links erstellen. Platzieren Sie sie an einem Ort, der in Ihrem Pfad enthalten ist, damit sie leicht aufgerufen werden können

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

Solange sich c:\bin oder wo immer Sie sie platziert haben, in Ihrem Pfad befindet, können Sie jetzt gehen

> python25
42

Wenn Sie Python installieren, werden andere Installationen anderer Hauptversionen nicht überschrieben. Durch die Installation von Python 2.5.x wird Python 2.6.x jedoch nicht überschrieben. Durch die Installation von 2.6.6 wird jedoch 2.6.5 überschrieben.

Sie können es also einfach installieren. Dann rufen Sie die gewünschte Python-Version auf. Zum Beispiel:

C:\Python2.5\Python.exe

für Python 2.5 unter Windows und

C:\Python2.6\Python.exe

für Python 2.6 unter Windows oder 

/usr/local/bin/python-2.5

oder 

/usr/local/bin/python-2.6

auf Windows Unix (einschließlich Linux und OS X).

Bei der Installation unter Unix (einschließlich Linux und OS X) wird der generische Befehl python installiert. Dies ist der letzte Befehl, den Sie installiert haben. Dies ist meistens kein Problem, da die meisten Skripten explizit /usr/local/bin/python2.5 oder etwas anderes aufrufen, um sich dagegen zu schützen. Wenn Sie das aber nicht tun wollen, können Sie es wahrscheinlich nicht so installieren:

./configure
make
Sudo make altinstall

Beachten Sie das "altinstall", dh es wird installiert, aber es ersetzt not den Befehl python.

Unter Windows erhalten Sie, soweit ich weiß, keinen globalen python-Befehl, daher ist dies kein Problem.

6
Lennart Regebro

Hier ist ein kurzer Hack:

  1. Wechseln Sie in das Verzeichnis der Python-Version, die Sie ausführen möchten
  2. Klicken Sie mit der rechten Maustaste auf python.exe
  3. Wählen Sie ' Verknüpfung erstellen '
  4. Geben Sie dieser Verknüpfung einen Namen, um sie anzurufen (Ich verwende p27, p33 usw.).
  5. Verschieben Sie diese Verknüpfung in Ihr Heimatverzeichnis (C:\Users\Your name)
  6. Öffnen Sie eine Eingabeaufforderung und geben Sie name_of_your_shortcut.lnk ein (ich verwende p27.lnk)
4
David Greydanus

cp c:\python27\bin\python.exe als python2.7.exe

cp c:\python34\bin\python.exe als python3.4.exe

sie befinden sich alle im Systempfad. Wählen Sie die Version aus, die Sie ausführen möchten

C:\Users\username>python2.7
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>>

C:\Users\username>python3.4
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 10:38:22) [MSC v.1600 32 bit Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
2
bruceyang

Die einfachste Möglichkeit, mehrere Versionen von Python unter Windows auszuführen, wird im Folgenden beschrieben: -

1) Laden Sie die neuesten Versionen von python von python.org/downloads herunter, indem Sie die für Ihr System relevante Version auswählen.

2) Führen Sie das Installationsprogramm aus und wählen Sie Add python 3.x zum Pfad, um den Pfad in Python 3 automatisch festzulegen (Sie müssen nur das Kontrollkästchen aktivieren). Öffnen Sie für Python 2 Ihr Python 2-Installationsprogramm. Wählen Sie die gewünschten Einstellungen aus. Denken Sie jedoch daran, Add python.exe unter Pfad auf zu setzen. Wird auf der lokalen Festplatte installiert. Klicken Sie nun auf Weiter und warten Sie auf das Installationsprogramm zu beenden.

3) Wenn beide Installationen abgeschlossen sind. Rechtsklick auf meinem Computer - Gehe zu Eigenschaften - Erweiterte Systemeinstellungen auswählen - Zu Umgebungsvariablen gehen - Klicken Sie unter Systemvariablen auf Neu und fügen Sie eine neue Systemvariable mit Variablenname als PY_PYTHON und setzen Sie diesen variablen Wert auf 3. Klicken Sie nun auf OK und Sie sollten fertig sein.

4) Um dies zu testen, öffnen Sie die Eingabeaufforderung command. Wenn Sie dort sind, geben Sie python oder py ein. Es sollte python3 geöffnet werden.

5) Verlassen Sie nun Python3, indem Sie exit () eingeben. Geben Sie nun py -2 ein. Es sollte Python 2 öffnen.

Wenn dies alles nicht funktioniert, starten Sie den Computer neu und wenn das Problem weiterhin besteht, deinstallieren Sie alles und wiederholen Sie die Schritte.

Vielen Dank.

1
Harsh Singh

Zum Beispiel für 3.6 geben Sie py -3.6 ein. Wenn Sie auch über 32-Bit- und 64-Bit-Versionen verfügen, können Sie einfach py -3.6-64 oder py -3.6-32 eingeben.

1
Mehran Jalili

Ich hatte das gleiche Problem bei der Arbeit mit verschiedenen python Versionen, also habe ich mit dem Anaconda Navigator verschiedene python Entwicklungsumgebungen erstellt und in jeder Umgebung unterschiedliche python Versionen verwendet.

Hier ist die Hilfedokumentation dazu.

https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/

1
mohitesachin217
  1. Sie können die Datei python.exe aus dem Ordner python 2.5 in C:\Windows kopieren und in py25.exe (oder einen beliebigen anderen Namen) umbenennen.
  2. kopieren Sie anschließend die Datei python.exe aus dem Ordner python 2.6 und fügen Sie sie in den Ordner C:\Windows ein (benennen Sie sie in py26.exe um).
    Jetzt können Sie py25 in die Befehlszeile schreiben, um python 2.5 zu starten, und py26, um python 2.6 zu starten.
    Der Name des Befehls sollte mit der umbenannten Datei übereinstimmen.
0
isaif

Ich kann das Projekt pyenv-win nur empfehlen.

 enter image description here 

Dank der Arbeit von kirankotari haben wir jetzt eine Windows-Version von pyenv.

0
Xin Lv
  1. python installieren

    • C:\Python27
    • C:\Python36
  2. umgebungsvariable

    • PYTHON2_HOME: C:\Python27
    • PYTHON3_HOME: C:\Python36
    • Path: %PYTHON2_HOME%;%PYTHON2_HOME%\Scripts;%PYTHON3_HOME%;%PYTHON3_HOME%\Scripts;
  3. datei umbenennen

    • C:\Python27\python.exe → C:\Python27\python2.exe
    • C:\Python36\python.exe → C:\Python36\python3.exe
  4. pip

    • python2 -m pip install package
    • python3 -m pip install package

Unter Verwendung einer Stapeldatei einfach und effizient unter Windows 7 zu wechseln. Ich verwende Folgendes:

Im Umgebungsvariablendialog (C:\Windows\System32\SystemPropertiesAdvanced.exe)

In der Sektion Benutzervariablen

  1. % pathpython% wurde der Pfadumgebungsvariablen hinzugefügt

  2. verweise auf Python-Pfade entfernt 

In der Sektion Systemvariablen

  1. verweise auf Python-Pfade entfernt 

Ich habe Batch-Dateien für jede Python-Installation erstellt (Beispiel für 3.4 x64)

Name = SetPathPython34x64 !!! ToExecuteAsAdmin.bat ;-), um sich daran zu erinnern.

Inhalt der Datei = 

     Set PathPython=C:\Python36AMD64\Scripts\;C:\Python36AMD64\;C:\Tcl\bin

     setx PathPython %PathPython%

Um zwischen den Versionen zu wechseln, führe ich die Batchdatei im Admin-Modus aus. 

!!!!! Die Änderungen wirken sich auf die Eingabeaufforderungsfenster OPENED des Befehls SUBSEQUENT aus. !!!

Ich habe also genaue Kontrolle darüber.

0
Aman