Python 2.7 Python:EasyGui使用fileopenbox()冻结

Python 2.7 Python:EasyGui使用fileopenbox()冻结,python-2.7,easygui,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

我正在编写一个代码来打开一个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使用tkinter作为其gui位

说(强调我的):

如果您是从Python.org使用Python 64位/32位Python Mac OS X 10.6及更高版本的安装程序,您应该只使用空闲或 tkinter具有更新的第三方Tcl/Tk 8.5,如ActiveTcl 8.5 安装

如果您使用的是OS X 10.9或更高版本和Python.org上的Python 64位/32位安装程序,应用程序窗口可能无法正确更新 由于Tk问题如果需要,请安装最新的ActiveTcl 8.5.18.0 可能。(另外,一个可能导致Python的关键OS X 10.9问题 从3.4.0开始,交互式使用时崩溃的问题已得到修复, 3.3.3和2.7.6安装人员。)

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


这听起来像是您的问题,所以它似乎是您需要解决的
tk
问题。

您的代码对我来说很好。可能您的pdf格式不正确-您尝试过多个文件吗?请注意,
begPage==0
应该是
int(begPage)==0
Python 2.7.10、easygui 0.97、Win7可能是一个路径问题-
inputFileName
是否返回文档的完整路径?在我的系统上是这样的,但OSX可能不同。我尝试了不同的文件,但它仍然冻结<代码>输入文件名返回完整路径。我已经“点击”了不同的东西试图解决这个问题,我发现如果我点击仪表板中的python图标,脚本就会解冻并进入下一步(2和3)。。。。但这只发生在
fileopenbox
中,其余的框会自动提示出来。。。另外,谢谢你的
begPage==0
fix。对不起,还是一样的问题。。。我已经完成了整个代码,除了
fileopenbox
框之外,其余的框都会像它们应该的那样弹出。。。甚至是
filesavebox
(与第一个相反)。这个脚本运行得很好,除了一开始的冻结问题,它做了它应该做的事情。你安装了ActiveTcl吗?事实上,您的代码可以在我的Windows系统上运行,但不能在OSX系统上运行。我并不是说这肯定是答案,但立即打折似乎是个坏主意。是的,我安装了ActiveTcl。我也试着在Windows上运行代码,它可以工作。。。它一定与OSX有关,或者更糟,尤其是我的电脑,这使得它更难解决。。。我试过运行EasyGui元素的不同组合,它们都工作得很好,除了
fileopenbox
。。。我试着在IDLE和Terminal上运行它,但在这两个平台上我都得到了相同的错误。顺便说一句,我已经安装了ActiveTcl,但是接下来我该怎么做呢?