2012-04-11 21 views
5

Tengo un script que convierte los archivos de Google Earth .kml/.kmz en shapefiles con una interfaz GUI simple escrita en Tkinter.¿Por qué mi programa funciona con una extensión .py pero no con una extensión .pyw?

Mi problema es que funciona bien con una extensión .py, pero cuando se guarda con una extensión .pyw se detiene al leer mis archivos .kml.

No hay mensajes de error y no se bloquea. La GUI se inicia correctamente, etc., pero se detiene y siempre en el mismo lugar. Estoy usando Python 2.5, y tuve los mismos resultados con Python 2.7.

¿Alguna idea de lo que podría causar esto?

Respuesta

8

.pyw los archivos se ejecutan de manera diferente que los archivos .py; están asociados con un intérprete diferente, pythonw.exe en lugar de python.exe, que no tiene una consola asociada.

De acuerdo con algunas fuentes, incluyendo this old mailing list thread, algunas operaciones no funcionan sin una consola.

Sin ver el guión exacto, no podemos saber con exactitud cuál es el problema pythonw.

+0

Gracias! Me quemé durante varias horas esta mañana tratando de encontrar un trabajo, pero nunca pude resolverlo. Lo que sospecho es que hay un problema con el uso de readline() con pythonw.exe – Nick

+0

@Nick. Es casi seguro que no sea 'readline'. ¿Utiliza alguna llamada al sistema, 'Popen', algo así? Si publica su código, me gustaría verlo. – agf

+2

Me he encontrado con problemas como este en el pasado; por lo general, se llena una tubería de salida porque no hay nadie para leer de ella. Algunas aplicaciones realmente esperan una consola para estar allí. Si continúan enviando datos a la salida estándar o al error estándar, eventualmente la tubería se llena (ya que nada consume los datos) y los bloques de proceso esperan que haya espacio disponible en la tubería. – AnotherParker

Cuestiones relacionadas