【发布时间】:2014-01-14 11:15:30
【问题描述】:
当您在笔记本中对不同的数据文件执行相同的分析时,以图形方式选择数据文件可能会很方便。
在我的 python 脚本中,我通常实现一个 QT 对话框,返回所选文件的文件名:
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]
但是,从笔记本运行此功能
full_fname = gui_fname()
导致内核死机(并重新启动):
有趣的是,将这 3 个命令放在 3 个单独的单元格中是可行的
%matplotlib qt
full_fname = gui_fname()
%matplotlib inline
但是当我将这些命令放在一个单元格中时,内核又死了。
这可以防止创建像 gui_fname_ipynb() 这样的函数,该函数透明地允许使用 GUI 选择文件。
为方便起见,我创建了一个笔记本来说明问题:
关于如何在 IPython Notebook 中执行文件选择对话框有什么建议吗?
【问题讨论】: