Я предполагаю, что вы используете версию wxPython , то есть >= 2.8.11.0
? Если это так, пакет wx.lib.pubsub
изменился. Эта страница описывает изменения. В списке рассылки wxPython есть , где говорится об этом.
Чтобы все это работало в моем проекте, я сделал следующее, описанное здесь , которое было частью вышеупомянутой ветки списка рассылки. Резюмирую ниже:
Наиболее предпочтительная альтернатива (т.е. нет
взломать!) если вы можете взломать его (извините!)
должен использовать тот же протокол обмена сообщениями
как v1, но в последнем API это
называется "arg1":
# only in app's startup module
from wx.lib.pubsub import setuparg1
# in all modules that use pubsub
from wx.lib.pubsub import pub as Publisher
и заменить любой случай "Publisher()." by "Publisher."
Затем в моем скрипте setup.py
мне пришлось добавить следующее к опциям:
options = {
"py2exe": {"packages": ['wx.lib.pubsub']}
}
setup(data_files=data_files,
windows=[
{'script': 'btpos.py'],
options=options)
Теперь вы сможете создавать исполняемый файл, используя новую версию pubsub, но со старым API. Вы также можете попробовать новый API v3 Pubsub. Если ваш проект не слишком большой, вы можете обойтись без особых изменений.