2012-04-03 87 views
1

我一直在學習Python2.7。我正在使用Windows 7 64位BTW。我開始學習GUI,並試圖使用wxpython和IDLE。所以我輸入一些代碼:pythonw.exe沒有迴應

import wx 
app = wx.App() 
win = wx.Frame(None) 
win.Show() 
app.MainLoop() 

我運行程序,彈出窗口,但藍色的甜甜圈在那裏。我試圖關閉窗口,它說pythonw.exe沒有響應。彈出另一個關於wxpython的窗口。它說:

wxPython stdout/stderr(Not Responding) 

Traceback (most recent call last): 
**IDLE Internal Exception: 
File "C:\Python27\lib\idlelib\run.py", line 93, in main 
seq, request = rpc.request_queue.get(block=True, timeout=0.05) 
File "C:\Python27\lib\Queue.py", line 177, in get 
self.not_empty.wait(remaining) 
File "C:\Python27\lib\threading.py", line 263, in wait 
_sleep(delay) 
typeError: 'int' object is not callable 

什麼是錯的,我該如何解決它?

謝謝。

回答

2

當您嘗試啓動事件循環時,崩潰很可能發生。看到這個錯誤報告:http://bugs.python.org/issue989712

似乎遠遠別人已經嘗試和創建擴展來處理這個能力:http://idlex.sourceforge.net/extensions.html

基本上不會從IDLE做到這一點。編寫一個腳本,直接在shell或腳本中運行它(如果在Windows中),用.pyw擴展名命名並雙擊它。 IDLE自己的事件循環與GUI工具包之間顯然存在衝突。

+0

IdleX的EventLoop.py擴展允許wx工具包在不調用app.Mainloop()的情況下運行。 – Roger 2012-04-13 22:56:24

0

似乎有些東西可能是threading庫中的污染變量,它看起來像_sleep變量正在被int值覆蓋;在這種情況下_sleep(x)將不起作用,因爲_sleepintint s不可調用。

它可能在您的客戶端代碼中,或者在某些框架代碼或庫中,您可能是import ing。那是所有的代碼嗎?

嘗試從普通的Python終端運行此代碼,而不是像IDLE這樣的IDE。

+0

是的,就是這一切。 – 2012-04-03 05:16:57