AttributeError:'module'对象没有属性'subscribe'Python

时间:2015-04-04 13:30:19

标签: python wxpython wxwidgets

我使用Kubuntu 13.10 64 bitPython 2.7.5+以及wxPython 2.8.12.1。我试图使用wx.lib.pubsub模块从不同的类(线程类)更新wx.Gauge。我的代码中有这样的导入:

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'

有什么问题以及如何解决?

1 个答案:

答案 0 :(得分: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