Mails versenden in Version 2.4

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.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Ja, beim "Öffnen mit" Eintrag. Klappt aber halt nicht mit Doppelklick und so müsste man erst wieder Wissen ob es ein Python 2 oder 3 Script ist (und dafür müsste man ihn wieder öffnen). MAn könnte auch einfach die Dateiendung in .py3 ändern, aber erkennt Python solch eine Datei noch als Modul an? Apropos woran erkennt Python das eine Datei ein Python Script ist?

Und mit IDLE klappt das auch nicht, jedenfalls nicht mit der Standardkonfiguration des Setups, da "Edit with IDLE" direkt in das Kontextmenü von Windows geschrieben wird und im Prinzip erstmal Python ausführt(IDLE ist ja ein Tkinter-Programm). Wenn man IDLE hier mit "Öffnen mit" wechseln möchte muss man wieder über eine ".bat" Datei gehen oder in der Registry rum hantieren. So das man halt einen zweiten Eintrag ins Kontextmenü erhält, hatte ich bei mir mal gemacht, nutzen tue ich das aber sowieso nicht mehr. Das ich Windows anmache ist schon selten, aber mit IDLE dann auch noch Scripten :roll:
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
BlackJack

@Xynon1: Bei Skripten ist es Python egal was eine Datei für eine Endung hat, bei Modulen nicht. Wenn man also die Endung '.py3' unter Windows mit einer `python3.exe` verknüpft, dann sollte das auch entsprechend ausgeführt werden, weil in den Fällen, genau wie bei der She-Bang-Zeile unter Linux, die Datei direkt dem angegebenen Python-Interpreter übergeben wird. Nur bei ``import foo`` muss die Dateiendung eine sein, die der Laufzeitumgebung bekannt ist.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Das meinte ich ja, also würde das für Module die irgendwo importiert werden dies nicht funktionieren.

Ich habe hier mal den Registry Eintrag den ich für IDLE gemacht habe rausgekramt und auf Python 3.1 angepasst:

Code: Alles auswählen

[HKEY_USERS\S-1-5-21-1275210071-115176313-725345543-1003\Software\Classes\Python.File\shell\Edit with IDLE 3.1]

[HKEY_USERS\S-1-5-21-1275210071-115176313-725345543-1003\Software\Classes\Python.File\shell\Edit with IDLE 3.1\command]
@="\"C:\\Python31\\pythonw.exe\" \"C:\\Python31\\Lib\\idlelib\\idle.pyw\" -n -e \"%1\""
Einfach in einer .reg-Datei speichern und ausführen. Der S-Schlüssel nach HKEY_USERS muss aber noch angepasst werden. Da es wie der Name des Hauptschlüssels schon sagt Nutzer spezifisch ist.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
BlackJack

@Xynon1: In welchen Fällen funktioniert das nicht für Module? Wenn ich ein Python-Skript mit der Zeile ``import functools`` mit einem Python-Interpreter starte, dann wird doch das zu dem Interpreter passende `functools`-Modul importiert. Zumindest ist das unter Linux so. Unter Windows nicht!?
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Nein, nein, jetzt reden wir mal wieder aneinander vorbei(muss wohl an mir liegen :( ). Das ist in Win natürlich auch so. Es sollte nicht mehr heißen als das man dann .py3 Dateien nicht mehr als Modul nutzen kann. Das dies in den seltensten Fällen bis nie auftritt, ist mir klar, denn wie oft möchte man ein Modul mit Doppelklick öffnen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten