Can not start boa-constructor successfully

折月煮酒 提交于 2019-12-04 06:56:30

I had the same problem. I can't tell you why. I can just tell you how I fixed it.

After you download and unzip the boa files go into the boa folder (On a Mac this could be: /Users/your_user_name/Downloads/boa-constructor-0.6.1).

Then: "grep" for every file containing NO_3D (or use whatever you want to search for a string in a set of files, I don't know how windows does this): In my case I did: grep -ir NO_3D *

A list of files comes up. Simply edit each such file (there are ~6) and remove any mentioning of "wx.NO_3D".

E.g., in Companions/BaseCompanions.py I find a match:

"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']"

You see the 'wx.NO_3D' in the middle somewhere. Remove it and save the file. Keep doing this for all files.

However, there is a minor complication in one file: "Inspector.py". Here, you cannot simply remove wx.NO_3D. In particular, the match is: self.categories = wx.SplitterWindow(self, -1, style=wx.NO_3D | wx.SP_3D | wx.SP_LIVE_UPDATE)

What I did was to replace "style=wx.NO_3D" with "style=wx.DEFAULT_FRAME_STYLE" (I found this default name in one of the other files; you see how there are different "styles" recognized by the program so I just chose some other style than NO_3D).

Then I just ran Boa with: "python Boa.py"

and it worked (assuming you have the module wx installed and whatever else is needed for Boa to run in the first place of course).

Boa Constructor is a very old project which hasn't had a release (or any commits that I could see) for 7 years. It's very likely that the code was written for a much older version of wxWindows/wxPython, and that the wx.NO_3D constant has been removed/renamed in later wx releases. You can see on the project mailing list that it's essentially dead (9 messages in 2013). It's a pity, it was really very nice.

It looks like someone made a fork on BitBucket that has commits from 2012 - that might work better for you. Certainly there's a commit for the NO_3D constant specifically. It might only go to wxPython 2.8, but it seems like a better point to start from.

try WXPython version wxPython2.8-win32-unicode-2.8.12.1-py27

I have uninstalled wxPython 2.9.4.0, that was giving me AttributeError: 'module' object has no attribute 'NO_3D' and I have installed wxPython2.8-win32-unicode-2.8.12.1-py27. Boa Constructor works without changing anything!!!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!