Еще один вариант - Zenity: http://freecode.com/projects/zenity .
У меня была ситуация, когда я разрабатывал серверное приложение Python (без компонента GUI) и, следовательно, не хотел вводить зависимость от каких-либо инструментов графического интерфейса Python, но я хотел, чтобы некоторые из моих сценариев отладки параметризовались входными файлами, и я хотел визуально запрашивать у пользователя файл, если он не указал его в командной строке. Зенити идеально подошел. Для этого вызовите zenity --file-selection с помощью модуля subprocess и запишите stdout. Конечно, это решение не зависит от Python.
Zenity поддерживает несколько платформ и уже был установлен на наших серверах разработчиков, поэтому он упростил нашу отладку / разработку, не создавая нежелательных зависимостей.