IPython Notebook: Datei mit GUI öffnen / auswählen (Qt-Dialog)

Wenn Sie dieselbe Analyse in einem Notizbuch für verschiedene Datendateien durchführen, kann es nützlich sein, eine Datendatei grafisch auszuwählen.

In meinen Python-Skripten implementiere ich normalerweise einen QT-Dialog, der den Dateinamen der ausgewählten Datei zurückgibt:

from PySide import QtCore, QtGui

def gui_fname(dir=None):
    """Select a file via a dialog and return the file name.
    """
    if dir is None: dir ='./'
    fname = QtGui.QFileDialog.getOpenFileName(None, "Select data file...", 
            dir, filter="All files (*);; SM Files (*.sm)")
    return fname[0]

Führen Sie diese Funktion jedoch von einem Notebook aus

full_fname = gui_fname()

bewirkt, dass der Kernel abstürzt (und neu startet):

Interessanterweise funktioniert es, wenn Sie diesen 3-Befehl in 3 separate Zellen einfügen

%matplotlib qt
full_fname = gui_fname()
%matplotlib inline

aber wenn ich diese Befehle in eine einzelne Zelle stecke, stirbt der Kernel wieder.

Dies verhindert das Erstellen einer Funktion wiegui_fname_ipynb() das ermöglicht transparent die Auswahl einer Datei mit einer GUI.

Der Einfachheit halber habe ich ein Notizbuch erstellt, das das Problem veranschaulicht:

Datei mit GUI öffnen / auswählen (Qt-Dialog)

Gibt es einen Vorschlag, wie Sie einen Dialog zur Dateiauswahl in einem IPython Notebook ausführen können?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage