Frage an user-interface, tkinter, pythonw, python – Warum funktioniert mein Programm mit einer .py-Erweiterung, aber nicht mit einer .pyw-Erweiterung?

5

Ich habe ein Skript, das Google Earth konvertiert.kml / .kmz Dateien in Shapefiles mit einer einfachen GUI-Oberfläche, die in Tkinter geschrieben wurde.

Mein Problem ist, dass es gut mit einem funktioniert.py Erweiterung, aber wenn mit einem gespeichert.pyw Erweiterung bleibt es beim Lesen meiner.kml Dateien.

Es gibt keine Fehlermeldungen und es stürzt nicht ab. Die GUI wird in Ordnung usw. gestartet, bleibt jedoch stehen und befindet sich immer an der gleichen Stelle. Ich verwende Python 2.5 und habe mit Python 2.7 die gleichen Ergebnisse erzielt.

Irgendwelche Ideen, was das verursachen könnte?

Deine Antwort

1   die antwort
8

.pyw Dateien werden anders als .py-Dateien ausgeführt - sie sind einem anderen Interpreter zugeordnet.pythonw.exe anstattpython.exe, der keine Konsole zugeordnet ist.

Nach einigen Quellen, darunterdieser alte Mailinglisten-Thread Einige Operationen funktionieren nicht ohne Konsole.

Ohne das genaue Skript zu sehen, können wir nicht genau wissen, woher das Problem stammtpythonw.

@ Nick Es ist fast sicher nichtreadline. Verwenden Sie irgendwelche Systemaufrufe,Popenso etwas? Wenn Sie Ihren Code posten, würde ich gerne einen Blick darauf werfen. agf
Ich bin in der Vergangenheit auf solche Probleme gestoßen - normalerweise füllt sich eine Ausgangsleitung, weil niemand etwas davon lesen kann. Einige Anwendungen erwarten wirklich, dass eine Konsole vorhanden ist. Wenn sie weiterhin Daten an die Standardausgabe oder an einen Standardfehler senden, füllt sich die Pipe schließlich (da nichts die Daten verbraucht) und der Prozess blockiert das Warten, bis etwas Platz in der Pipe verfügbar ist. AnotherParker
Vielen Dank! Ich habe heute Morgen mehrere Stunden verbrannt, um eine Arbeit zu finden, aber ich konnte es nie herausfinden. Was ich vermute, ist ein Problem mit der Verwendung von readline () mit pythonw.exe Nick

Verwandte Fragen