Не могу запустить Боа-конструктор успешно
Когда я запускаю boa-constructor из командной строки, запуская скрипт "Boa.py", я получаю сообщение "
D:\Python27\Lib\site-packages\boa-constructor>python Boa.py
Starting Boa Constructor v0.6.1
importing wxPython
reading user preferences
Traceback (most recent call last):
File "Boa.py", line 271, in <module>
import Preferences, Utils
File "D:\Python27\Lib\site-packages\boa-constructor\Preferences.py", line 151
in <module>
execfile(file)
File "C:\Users\madfrog\.boa-constructor\prefs.rc.py", line 26, in <module>
splitterStyle = wx.SP_LIVE_UPDATE | wx.SP_3DSASH | wx.NO_3D
AttributeError: 'module' object has no attribute 'NO_3D'
Моя версия Python 2.7.4, и я загружаю wxPyton "32-битный Python 2.7". Кто-то говорит это потому, что у меня непревзойденная версия wxPython, но есть только 64-битная или 32-битная версия, я не знаю, как справиться с этой проблемой. Может мне стоит переустановить питон, какая версия 2.6?
Спасибо за вашу помощь.
4 ответа
У меня такая же проблема. Я не могу сказать вам, почему. Я могу просто рассказать, как я это исправил.
После того, как вы загрузите и разархивируете файлы boa, перейдите в папку boa (на Mac это может быть: /Users/your_user_name/Downloads/boa-constructor-0.6.1).
Затем: "grep" для каждого файла, содержащего NO_3D (или используйте все, что вы хотите, чтобы найти строку в наборе файлов, я не знаю, как это делает Windows): В моем случае я сделал: grep -ir NO_3D *
Появляется список файлов. Просто отредактируйте каждый такой файл (есть ~6) и удалите любое упоминание "wx.NO_3D".
Например, в Companions/BaseCompanions.py я нахожу соответствие:
"self.windowStyles = ['wx.CAPTION', 'wx.MINIMIZE_BOX', 'wx.MAXIMIZE_BOX',
'wx.THICK_FRAME', 'wx.SIMPLE_BORDER', 'wx.DOUBLE_BORDER',
'wx.SUNKEN_BORDER', 'wx.RAISED_BORDER', 'wx.STATIC_BORDER',.
'wx.TRANSPARENT_WINDOW', 'wx.NO_3D', 'wx.TAB_TRAVERSAL',.
'wx.WANTS_CHARS', 'wx.NO_FULL_REPAINT_ON_RESIZE', 'wx.VSCROLL',.
'wx.HSCROLL', 'wx.CLIP_CHILDREN', 'wx.NO_BORDER', 'wx.ALWAYS_SHOW_SB']"
Вы видите где -то в середине wx.NO_3D. Удалите его и сохраните файл. Продолжайте делать это для всех файлов.
Однако в одном файле есть небольшая сложность: "Inspector.py". Здесь вы не можете просто удалить wx.NO_3D. В частности, соответствие: self.categories = wx.SplitterWindow (self, -1, style = wx.NO_3D | wx.SP_3D | wx.SP_LIVE_UPDATE)
Что я сделал, так это заменил "style=wx.NO_3D" на "style=wx.DEFAULT_FRAME_STYLE" (я нашел это имя по умолчанию в одном из других файлов; вы видите, как разные "стили" распознаются программой, поэтому я просто выбрал какой-то другой стиль, кроме NO_3D).
Тогда я просто запустил Боа с: "python Boa.py"
и это сработало (при условии, что у вас установлен модуль wx и все остальное, что нужно для запуска Boa, конечно).
Boa Constructor - очень старый проект, в котором не было релиза (или каких-либо коммитов, которые я видел) в течение 7 лет. Весьма вероятно, что код был написан для гораздо более старой версии wxWindows/wxPython и что константа wx.NO_3D была удалена / переименована в более поздних выпусках wx. Из списка рассылки проекта видно, что он по сути мертв (9 сообщений в 2013 году). Жаль, это было действительно очень приятно.
Похоже, кто-то сделал форк на BitBucket с коммитами с 2012 года - это может работать лучше для вас. Конечно, есть фиксация для константы NO_3D. Это может быть только переход к wxPython 2.8, но лучше начать с него.
Я удалил wxPython 2.9.4.0, который давал мне AttributeError: у объекта 'module' нет атрибута 'NO_3D', и я установил wxPython2.8-win32-unicode-2.8.12.1-py27. Боа Конструктор работает, ничего не меняя!!!
Попробуйте WXPython версии wxPython2.8-win32-unicode-2.8.12.1-py27