2015-04-04 67 views
3

我使用Kubuntu 13.10 64 bitPython 2.7.5+wxPython 2.8.12.1。我正在嘗試使用wx.lib.pubsub模塊從不同的類(線程類)更新wx.Gauge。我在我的代碼,這樣進口:AttributeError:'模塊'對象沒有'訂閱'屬性Python

try: 
    from pubsub import pub 
except ImportError: 
    from wx.lib.pubsub import pub 

,但是當我開始我的申請,我得到的錯誤:

pub.subscribe(self.updateProgress, "update") 
AttributeError: 'module' object has no attribute 'subscribe' 

什麼問題,如何解決?

+0

''subscribe''似乎不是'pub'模塊中的函數。 看一下'dir(pub)',看看是否有''subscribe''。一個簡單的方法是在導入之後立即將它添加到代碼中:'print dir(pub)'和'print'subscribe'in dir(pub)' – 2015-04-04 14:39:34

回答

1

wxPython 2.8.12包含舊版本的pubsub。

在您的代碼中,您不清楚哪個版本出現錯誤,換句話說哪個導入有效?我想這是一個來自wx.lib的版本,2.8.12版本是pubsub的舊版本。

我會建議使用更新版本的wxPython,例如, 3.0.2或者使用獨立的pypubsub,但是如果你想堅持2.8,那麼doc會告訴你需要做什麼。 http://pubsub.sourceforge.net/usage/howtos/upgrade_v1tov3.html#label-upgrade-for-wx

相關問題