属性错误:';模块';对象没有属性';订阅';python

属性错误:';模块';对象没有属性';订阅';python,python,wxpython,wxwidgets,Python,Wxpython,Wxwidgets,我使用的是kubuntu13.10 64位和python2.7.5+和wxpython2.8.12.1。我试图使用wx.lib.pubsub模块从不同的类(线程类)更新wx.Gauge。我的代码中包含此类导入: try: from pubsub import pub except ImportError: from wx.lib.pubsub import pub 但是当我启动应用程序时,我得到了一个错误: pub.subscribe(self.updateProgre

我使用的是
kubuntu13.10 64位
python2.7.5+
wxpython2.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'

出了什么问题以及如何修复?

wxpython2.8.12包含较旧版本的pubsub

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

我建议使用wxPython的更新版本,例如3.0.2,或者使用独立的pypubsub,但是如果你想坚持使用2.8,那么文档会告诉你需要做什么。
'subscribe'
似乎不是
pub
模块中的函数。看看
dir(pub)
,看看里面是否有
'subscribe'
。一种简单的方法是在导入后立即将其添加到代码中:
print dir(pub)
print'subscribe(pub)