Otra opción a considerar es Zenity: http://freecode.com/projects/zenity .
Tuve una situación en la que estaba desarrollando una aplicación de servidor Python (sin componente de GUI) y, por lo tanto, no quería introducir una dependencia en ningún kit de herramientas de GUI de Python, pero quería que algunos de mis scripts de depuración fueran parametrizados por archivos de entrada y quería solicite visualmente al usuario un archivo si no especificó uno en la línea de comando. Zenity fue un ajuste perfecto. Para lograr esto, invoque "zenity --file-selection" usando el módulo de subproceso y capture el stdout. Por supuesto, esta solución no es específica de Python.
Zenity admite múltiples plataformas y ya estaba instalado en nuestros servidores de desarrollo, por lo que facilitó nuestra depuración / desarrollo sin introducir una dependencia no deseada.