如何修复 Scyther wx.splashscreen 错误?
How can I fix the Scyther wx.splashscreen error?
安装 Scyther 以及 Graphwiz 和 wxPython 后,出现错误:
File "scyther-gui.py", line 141, in <module>
class MySplashScreen(wx.SplashScreen):
AttributeError: 'module' 对象没有属性 'SplashScreen'
这显然是因为 Scyther 是用旧版本的 wxPython 编写的。
我发现 Thomas Fleming 已经为更新的 wxPython 版本更新了它(我有 4.0.7.post2),你可以找到他的 GitHub 存储库 here。看起来它会在某个时候被拉入主分支,但此刻我使用了他的叉子。
自述文件中的说明非常清楚,我照着做了没问题,但对我来说文件 scyther-linux
没有自动从 /src
复制到 /gui
所以我不得不手动移动它。
他的修复似乎也适用于 mac 上的人,但是,我使用的是 Ubuntu 18.4,虽然我已经克服了闪屏错误并加载了 Scyther,但我无法打开文件,得到
File "/home/weaver/tools/scyther-master/gui/Gui/Mainwindow.py", line 291, in OnOpen
if self.askUserForFilename(style=wx.OPEN,
AttributeError: 'module' object has no attribute 'OPEN'
和保存的等价物。
为了解决这个问题,我打开了 /gui/Gui/Mainwindow.py
,并将第 291 行从
更改为
if self.askUserForFilename(style=wx.OPEN,
至
if self.askUserForFilename(style=wx.FD_OPEN,
并在第 302 行对 wx.SAVE
执行相同操作,将其更改为 wx.FD_SAVE
。
目前看来 运行 还不错。
希望这对您有所帮助。
安装 Scyther 以及 Graphwiz 和 wxPython 后,出现错误:
File "scyther-gui.py", line 141, in <module>
class MySplashScreen(wx.SplashScreen):
AttributeError: 'module' 对象没有属性 'SplashScreen'
这显然是因为 Scyther 是用旧版本的 wxPython 编写的。
我发现 Thomas Fleming 已经为更新的 wxPython 版本更新了它(我有 4.0.7.post2),你可以找到他的 GitHub 存储库 here。看起来它会在某个时候被拉入主分支,但此刻我使用了他的叉子。
自述文件中的说明非常清楚,我照着做了没问题,但对我来说文件 scyther-linux
没有自动从 /src
复制到 /gui
所以我不得不手动移动它。
他的修复似乎也适用于 mac 上的人,但是,我使用的是 Ubuntu 18.4,虽然我已经克服了闪屏错误并加载了 Scyther,但我无法打开文件,得到
File "/home/weaver/tools/scyther-master/gui/Gui/Mainwindow.py", line 291, in OnOpen
if self.askUserForFilename(style=wx.OPEN,
AttributeError: 'module' object has no attribute 'OPEN'
和保存的等价物。
为了解决这个问题,我打开了 /gui/Gui/Mainwindow.py
,并将第 291 行从
if self.askUserForFilename(style=wx.OPEN,
至
if self.askUserForFilename(style=wx.FD_OPEN,
并在第 302 行对 wx.SAVE
执行相同操作,将其更改为 wx.FD_SAVE
。
目前看来 运行 还不错。
希望这对您有所帮助。