Seite 1 von 1

Zwischen Python 2 und 3 umschalten

Verfasst: Mittwoch 31. März 2010, 08:41
von RedSharky
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!

Verfasst: Mittwoch 31. März 2010, 08:51
von Darii
Unter Windows wird dir nichts anderes übrigbleiben als für Python3 eine andere Dateiendung zu verwenden und die mit Python3 zu verknüpfen.

Verfasst: Mittwoch 31. März 2010, 08:56
von .robert
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.

Verfasst: Mittwoch 31. März 2010, 09:04
von r0bnet
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

Verfasst: Mittwoch 31. März 2010, 09:08
von ms4py
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 ..."

Verfasst: Mittwoch 31. März 2010, 13:47
von RedSharky
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?

Verfasst: Mittwoch 31. März 2010, 14:18
von theliquidwave
Das kann nicht passieren, da die .exe-Dateien in jeweils verschiedenen Verzeichnissen liegen, und den Content jeweils relativ zum .exe-Pfad laden.

Gruß

Verfasst: Mittwoch 31. März 2010, 14:52
von RedSharky
Dankeschön!

Verfasst: Mittwoch 31. März 2010, 18:12
von ms4py
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.