【发布时间】:2017-12-22 13:44:22
【问题描述】:
所以,我有这个功能应该让用户选择几个图像文件以包含在文档中。出于某种原因,每次我在 Mac OSX 10.11.6 上的较大程序中运行此函数时都会崩溃,并且出现分段错误错误,特别是分段错误 11。然而,当我单独运行该函数时,它工作得很好.这是怎么回事?
import sys
import logging
from time import strftime
import Tkinter as Tk
import tkFileDialog
def get_filepaths(title=None):
"""
Gets an unlimited number of filepaths until the user clicks 'Cancel'.
:param title: The title of the window dialog.
:return: list of filepaths
"""
if title is None:
title = "Select an image to add to the report. Click Done to load " \
"the file. When you're finished, click Cancel to continue."
logging.debug("Inputting filepaths...")
types = (("all files", "*.*"), ("images", "*.jpg *.jpeg *.png *.tiff "
"*.tif *.gif *.bmp *.psd"))
root = Tk.Tk()
root.withdraw()
paths = []
while True:
path = tkFileDialog.askopenfilename(title=title, filetypes=types)
if len(path) == 0:
break
paths.append(path)
return paths
【问题讨论】:
-
您是否正在创建多个
Tk.Tk实例?一个 tkinter 程序应该有 一个Tk类的实例。 -
@Rawing 不,你在sn-p中看到的Tk.Tk是它在整个程序中唯一出现的地方。
-
@Novel 是的,我安装了一个新版本的 ActiveTCL 用于我的 virtualenv。当我在命令行上执行
tclsh后跟info patchlevel时,它说我的版本是8.6.6。
标签: python python-2.7 tkinter segmentation-fault tk