2012-04-11 7 views
5

Ho uno script che converte i file di Google Earth .kml/.kmz in shapefile con una semplice interfaccia GUI scritta in Tkinter.Perché il mio programma funziona con estensione .py ma non con estensione .pyw?

Il mio problema è che funziona bene con un'estensione .py, ma quando viene salvato con un'estensione .pyw si blocca durante la lettura dei miei file .kml.

Non ci sono messaggi di errore e non si blocca. La GUI si avvia OK, ecc., Ma si ferma e si trova sempre nello stesso punto. Sto usando Python 2.5 e ho avuto gli stessi risultati con Python 2.7.

Qualche idea che cosa potrebbe causare questo?

risposta

8

.pyw I file vengono eseguiti in modo diverso rispetto ai file .py - sono associati a un altro interprete, pythonw.exe anziché python.exe, a cui non è associata una console.

Secondo alcune fonti, tra cui this old mailing list thread alcune operazioni non funzionano senza una console.

Senza visualizzare lo script esatto, non possiamo sapere esattamente che sta causando il problema per pythonw.

+0

Grazie! Stamattina ho bruciato parecchie ore cercando di trovare un lavoro, ma non ho mai potuto capirlo. Quello che sospetto è che ci sia un problema con l'utilizzo di readline() con pythonw.exe – Nick

+0

@Nick. Non è quasi certamente 'readline'. Usi chiamate di sistema, 'Popen', qualcosa del genere? Se pubblichi il tuo codice, sarei felice di dare un'occhiata. – agf

+2

Mi sono imbattuto in problemi come questo in passato - di solito è un tubo di uscita che si riempie perché non c'è nessuno da leggere. Alcune applicazioni davvero, davvero si aspettano una console per essere lì. Se continuano a inviare dati all'output standard o all'errore standard, alla fine la pipe si riempie (dato che nulla sta consumando i dati) e il processo blocca l'attesa di spazio disponibile nella pipe. – AnotherParker