Zwischen Python 2 und 3 umschalten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
RedSharky
User
Beiträge: 99
Registriert: Donnerstag 13. April 2006, 15:38

Hi,

ich habe mir jetzt zu Python 2 auch die neuere Version 3 installiert (auf Win7 64). Ältere Programme möchte ich weiter mit der 2er Version weiterpflegen, für neuere Projekte aber die 3er verwenden.

Was ich nun suche ist eine einfache Möglichkeit anzugeben, mit welcher Version ein bestimmtes Skript starten soll, von mir aus mit einer Zeile Code am Anfang einer jeden py-Datei (ähnlich einer Magic Line).

Wie macht man sowas?

Ich hab schon im Forum gesucht, aber leider nix gefunden. Ich möchte NICHT wissen, ob man besser Version 2 oder 3 benutzt, sondern wie man möglich einfach je nach Bedarf zwischen beiden Versionen wechselt.

Danke!
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Unter Windows wird dir nichts anderes übrigbleiben als für Python3 eine andere Dateiendung zu verwenden und die mit Python3 zu verknüpfen.
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Hi,

wenn es nur um die Entwicklung und Tests der Scripte geht, könntest du dir virtualenv mal ansehen.

Für den täglichen Gebrauch könntest du dir Starter für die Scripte anlegen, die diese jeweils mit dem entsprechenden Interpreter starten.
Also wenn du normalerweise ein Script mit

Code: Alles auswählen

c:\...>python script.py
startest dann mit (z.B.)

Code: Alles auswählen

C:\...>C:\Python26\python.exe script.py
dein Script ausführen.
r0bnet
User
Beiträge: 10
Registriert: Montag 11. Januar 2010, 20:20

Eine Quick&Dirty Lösung wäre: Setze vor Start eines 2er Scripts die PATH Variable auf den 2er Ordner und am Ende wieder den 3er Ordner. Das müsstest du aber dann mit ner bat lösen, ODER du sprichst die Exe, die dein Script ausführen soll direkt an.

greez
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Am elegantesten ist doch sicher eine Batch Datei unter deinem PATH, die den jeweiligen Interpreter aufruft.
Beispiel: python26.bat

Code: Alles auswählen

@echo off
C:\Python26\python.exe %*
Aufruf dann einfach mit "python26 myscript.py arg1 arg2 ..."
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
RedSharky
User
Beiträge: 99
Registriert: Donnerstag 13. April 2006, 15:38

Danke für eure hilfreichen Tipps.

Das mit den Dateiendungen, z. B. py3 verknüpft mit C:\python31\python.exe funktioniert super, ebenso eine Batch-Datei.

Nur bin ich mir etwas unsicher mit den PYTHON-Pfaden. Muss man die noch zusätzlich umbiegen, oder reicht es, wenn man wie oben beschrieben vorgeht und die zu verwendende exe spezifiziert? Könnte mir vorstellen, dass es zu Problemen kommt, wenn ein 3er Programm Module aus einer 2er Version nachlädt. Oder kann dies in diesem Fall garnicht passieren?
theliquidwave
User
Beiträge: 221
Registriert: Sonntag 1. Juni 2008, 09:08

Das kann nicht passieren, da die .exe-Dateien in jeweils verschiedenen Verzeichnissen liegen, und den Content jeweils relativ zum .exe-Pfad laden.

Gruß
Grüßle.
RedSharky
User
Beiträge: 99
Registriert: Donnerstag 13. April 2006, 15:38

Dankeschön!
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

RedSharky hat geschrieben:Nur bin ich mir etwas unsicher mit den PYTHON-Pfaden. Muss man die noch zusätzlich umbiegen, oder reicht es, wenn man wie oben beschrieben vorgeht und die zu verwendende exe spezifiziert? Könnte mir vorstellen, dass es zu Problemen kommt, wenn ein 3er Programm Module aus einer 2er Version nachlädt. Oder kann dies in diesem Fall garnicht passieren?
Wenn du die Umgebungsvariable "PYTHONPATH" manuell gesetzt hast, kann das Probleme machen, in diesem Fall musst du diese in dem Batch-Script setzen.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Antworten