2014-01-23 14 views
5

Wenn ich Boa-Konstruktor von der Kommandozeile durch das Skript starten „Boa.py“ starten, bekam ich die Nachricht sagt "Kann nicht Boa-Konstruktor starten erfolgreich

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' 

Meine Python-Version 2.7.4 ist und ich wxPyton "32-Bit Python 2.7" herunterladen. Es gibt jemand sagen, dass es die unübertroffene wxPython-Version, aber es gibt nur 64-Bit oder 32 Bit für mich, ich weiß nicht, wie mit diesem Problem umzugehen. Vielleicht sollte ich installieren Sie den python, die Version 2.6?

Vielen Dank für Ihre Hilfe.

Antwort

2

B oa Constructor ist ein sehr altes Projekt, das seit 7 Jahren keine Veröffentlichung (oder irgendwelche Commits, die ich sehen konnte) hatte. Es ist sehr wahrscheinlich, dass der Code für eine viel ältere Version von wxWindows/wxPython geschrieben wurde und dass die wx.NO_3D-Konstante in späteren wx-Versionen entfernt/umbenannt wurde. Sie können auf der project mailing Liste sehen, dass es im Wesentlichen tot ist (9 Nachrichten in 2013). Es ist schade, es war wirklich sehr nett.

Es sieht aus wie jemand eine fork on BitBucket gemacht hat, die von 2012 commits hat - das könnte besser für Sie arbeiten. Sicherlich gibt es speziell für die NO_3D-Konstante ein Commit. Es könnte nur zu wxPython 2.8 gehen, aber es scheint ein besserer Ausgangspunkt zu sein.

5

Ich hatte das gleiche Problem. Ich kann dir nicht sagen warum. Ich kann dir nur sagen, wie ich es repariert habe.

Nachdem Sie die Boa-Dateien heruntergeladen und entpackt haben, gehen Sie in den boa-Ordner (Auf einem Mac könnte dies sein: /Users/Ihr_Benutzername/Downloads/boa-constructor-0.6.1).

Dann: „grep“ für jede Datei enthält NO_3D (oder verwenden, was Sie für eine Zeichenfolge in einer Reihe von Dateien gesucht werden soll, ich weiß nicht, wie Fenster dies der Fall ist): In meinem Fall habe ich: grep -ir NO_3D *

Eine Liste der Dateien wird angezeigt. Bearbeiten Sie einfach jede solche Datei (es sind ~ 6) und entfernen Sie alle Erwähnung von "wx.NO_3D".

Z. B. in Companions/BaseCompanions.py finde ich ein Spiel:

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

Sie sehen die 'wx.NO_3D' in der Mitte irgendwo. Entfernen Sie es und speichern Sie die Datei. Machen Sie dies für alle Dateien.

Allerdings gibt es eine kleine Komplikation in einer Datei: "Inspector.py". Hier können Sie wx.NO_3D nicht einfach entfernen. Insbesondere das Spiel ist: self.categories = wx.SplitterWindow (self, -1, style = wx.NO_3D | wx.SP_3D | wx.SP_LIVE_UPDATE)

Was ich tat, war "zu ersetzen style = wx.NO_3D "mit" style = wx.DEFAULT_FRAME_STYLE "(Ich habe diesen Standardnamen in einer der anderen Dateien gefunden; Sie sehen, wie verschiedene" Stile "vom Programm erkannt werden, also habe ich einfach einen anderen Stil als NO_3D gewählt) .

Dann lief ich nur Boa mit: „Python Boa.py“

und es funktionierte (vorausgesetzt, Sie das Modul wx installiert haben und was sonst benötigt wird, für Boa in erster Linie natürlich laufen).

0

versuchen WxPython Version wxPython2.8-win32-Unicode-2.8.12.1-py27

1

I 2.9.4.0 WxPython deinstalliert haben, dass gab mir Attribute: 'Modul' Objekt hat kein Attribut 'NO_3D' und ich habe wxPython2.8-win32-unicode-2.8.12.1-py27 installiert. Boa Constructor funktioniert, ohne etwas zu ändern !!!