【问题标题】:AttributeError: 'module' object has no attribute 'subscribe' PythonAttributeError:“模块”对象没有属性“订阅”Python
【发布时间】:2015-04-04 13:30:19
【问题描述】:

我正在使用 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'

出了什么问题以及如何解决?

【问题讨论】:

  • 'subscribe' 似乎不是pub 模块中的函数。看看dir(pub) 看看'subscribe' 是否在其中。一种简单的方法是在导入后立即将其添加到代码中:print dir(pub)print 'subscribe' in dir(pub)

标签: python wxpython wxwidgets


【解决方案1】:

wxPython 2.8.12 包含旧版本的 pubsub。

在您的代码中,不清楚您在哪个版本上出错,换句话说,哪个导入有效?我猜它是来自 wx.lib 的那个,它在 2.8.12 中将是旧版本的 pubsub。

我建议使用更新版本的 wxPython,例如3.0.2 或使用独立的 pypubsub,但如果你想坚持使用 2.8,那么文档会告诉你需要做什么。 http://pubsub.sourceforge.net/usage/howtos/upgrade_v1tov3.html#label-upgrade-for-wx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-09
    • 2013-07-05
    • 2011-10-25
    • 2017-09-02
    • 2014-07-24
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多