Python:EasyGui与fileopenbox冻结()

时间:2015-12-03 12:36:59

标签: python-2.7 easygui

我正在编写代码来打开PDF文件,选择要裁剪的页数,然后创建一个新的裁剪文件。

以下是代码:

from easygui import *
from pyPdf import PdfFileReader, PdfFileWriter

# 1 select a inputfile
inputFileName = fileopenbox('Please choose a PDF file','', '*.pdf')

#2 total pages
inputFile = PdfFileReader(file(inputFileName, 'rb'))
totalPages = inputFile.getNumPages()

#3 Enter  beginning Page  
begPage = enterbox('Please choose the Beginning Page','it must a number')
while not begPage.isdigit() or begPage ==0 or int(begPage) > totalPages: 
    msgbox('Please enter a valid digit', '', 'ok')
    begPage = enterbox('Please choose the Beginning Page','it must a number')

事情是在测试这些第一步时。当我选择文件并单击“确定”时,fileopenbox冻结,我无法进入下一步。

如果我将第一步或第1步和第2步隔离开来,它可以正常工作,但我无法使用其余的脚本(步骤3)。

我在macbookPro OSX 10.9.2上使用 Python 2.7.10 easygui 0.97

1 个答案:

答案 0 :(得分:1)

Easygui使用tkinter作为其gui位。

This page说(强调我的):

  

如果您使用的是python.org 64位/ 32位Python中的Python   对于Mac OS X 10.6及更高版本的安装程序,您应该只使用IDLE或   tkinter与更新的第三方Tcl / Tk 8.5,如ActiveTcl 8.5   安装。

     

如果您使用的是OS X 10.9或更高版本以及python.org中的Python   64位/ 32位安装程序,应用程序窗口可能无法正确更新   由于Tk问题。 安装最新的ActiveTcl 8.5.18.0 if   可能。(另外,一个可能导致Python的关键OS X 10.9问题   交互使用时崩溃已在3.4.0中修复,   3.3.3和2.7.6安装程序。)

     

如果您使用的是Mac OS X 10.6,请不要使用IDLE或Tkinter   Apple在Mac OS X 10.6中提供的Python 2.6.1。如果可能,安装和   使用较新版本的Python和Tcl / Tk。

这听起来像是您的问题,因此看起来ActiveTcl是解决tk问题所需的问题。