安装了Scyther以及Graphwiz和wxPython之后,出现错误:
File "scyther-gui.py", line 141, in <module>
class MySplashScreen(wx.SplashScreen):
AttributeError:“模块”对象没有属性“ 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
。到目前为止,一切似乎还不错。
希望这可以帮助。