2014-09-04 34 views
0

我用wx.lib.pubsub(Windows中,Python 2.6中)与py2exe编译发布订阅

当解释器中运行我的应用程序,发布订阅的版本是1

当我编译和运行我的应用程序中, pubsub的版本是3

为什么? 如何强制编译版本运行pubsub api v1?

from distutils.core import setup 
import py2exe 
from distutils.core import Distribution 

setup(
     console=[ 
      dict(
       script='test.py' 
       ) 
     ], 
     options={ 
       'py2exe': { 
        'packages' : [ 
           'wx.lib.pubsub' 
           ], 
        'includes': [], 
        "excludes" : [], 
        "dll_excludes": [ 'tcl85.dll', 'tk85.dll', 'mswsock.dll', 'powrprof.dll'] 
        } 
       }, 
     ) 


from wx.lib.pubsub import pub 

publisher = pub.Publisher() 
print pub.PUBSUB_VERSION 

EVENT_NAME = "test_pubsub" 

def listener(data): 
    print data 

publisher.subscribe(listener, EVENT_NAME) 
publisher.sendMessage(EVENT_NAME, data="toto") 
+0

wxpython v 2.8.12.1 – user2920520 2014-09-05 07:14:47

回答

0

您正在使用3年前的wxPython版本。 2.8.12包含的pubsub不再受支持。使用“pip install pypubsub”安装最新的pubsub,并用“from pubsub import pub”替换“from wx.lib.pubsub import pub”。 documentation about migrating from v1 to v3可能会有用。那么它应该工作。