安装了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

到目前为止,一切似乎还不错。

希望这可以帮助。

10-08 01:13