当我通过启动脚本" Boa.py"从命令行启动boa-constructor时,我收到消息说"
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&#34; 32位Python 2.7&#34;。有人说这是因为wxPython版本无与伦比,但对我来说只有64位或32位,我不知道如何处理这个问题。也许我应该重新安装python,哪个版本是2.6?
感谢您的帮助。
答案 0 :(得分:5)
我遇到了同样的问题。我不能告诉你为什么。我可以告诉你我是如何修理它的。
下载并解压缩boa文件后进入boa文件夹 (在Mac上,这可能是:/Users/your_user_name/Downloads/boa-constructor-0.6.1)。
然后:对于包含NO_3D的每个文件都使用“grep”(或者使用你要在一组文件中搜索字符串的任何内容,我不知道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更好的风格。
然后我就跑了Boa: “python Boa.py”
并且它有效(假设您已经安装了模块wx以及Boa首先需要运行的其他任何东西)。
答案 1 :(得分:2)
Boa Constructor是一个非常古老的项目,已经有7年没有发布(或者我可以看到的任何提交)。代码很可能是为更旧版本的wxWindows / wxPython编写的,并且wx.NO_3D常量已在以后的wx版本中删除/重命名。您可以在project mailing列表中看到它基本上已死(2013年有9条消息)。很遗憾,这真的非常好。
看起来有人做了一个fork on BitBucket从2012年开始提交 - 这对你来说可能会更好。当然,特别是NO_3D常量的提交。它可能只适用于wxPython 2.8,但它似乎是一个更好的起点。
答案 2 :(得分:1)
尝试WXPython版本wxPython2.8-win32-unicode-2.8.12.1-py27
答案 3 :(得分:1)
我已经卸载了wxPython 2.9.4.0,它给了我AttributeError:&#39; module&#39;对象没有属性&#39; NO_3D&#39;我已经安装了wxPython2.8-win32-unicode-2.8.12.1-py27。 Boa Constructor可以在不改变任何东西的情况下工作!!!