wx.App (wxPython) 调用时崩溃

1 投票
3 回答
2129 浏览
提问于 2025-04-16 08:07

最近我在Windows上安装了wxPython,想做一些工作。大部分时间我是在Linux上工作,所以在Windows这边的经验不多。
我用python.exe这个解释器,只写了两行代码:
import wx
tmp=wx.App(False)

结果解释器就崩溃了,还弹出了Windows的错误报告。
我试过python 2.7.1和2.6.6,搭配wxPython 2.8.11,都是从官网下的,结果还是不行。
在Windows上安装Python后,我是不是还需要做什么?我看到Python安装得很好,也能做一些基本的工作,wxPython库也能加载,但就是调用wx.App的时候出问题。

3 个回答

1

如果像我一样,有人碰巧看到这个问题。最近我在两台电脑上安装了wxpython,一台是Windows 7,另一台是XP。我在Python控制台里测试了wxpython文档中提供的simple.py示例代码,结果在两台机器上都遇到了同样的问题:第一次导入没问题,但当我重新加载这个模块时,Python就崩溃了。

我在simple.py文件的最后加了一行代码:del app

这样在Windows 7上就解决了问题,明天我会在XP机器上试试。

结果XP机器上也适用同样的解决办法。所以,当你尝试重新加载一个没有修改过的模块,并且这个模块里有一个wx.App的引用,而这个界面已经关闭时,似乎就会出问题。用del语句删除这个引用就能解决这个问题。

1

如果你是在IDLE里运行这个,那就是你的问题所在。IDLE和wx不太兼容,因为你会遇到两个主循环在互相争斗的情况。试着把代码放到一个文件里,然后从命令行运行这个文件:

c:\python27\python.exe myPyFile.py

这样应该就能正常工作了。如果不行的话,下载适合你Python版本和操作系统(32位或64位)的wxPython,先卸载当前的版本,然后安装新的版本。我在Windows XP、Vista和7上使用wxPython时没有遇到过这样的问题。

0

我找了好一阵子,发现这个问题是wxPython和Python版本大于2.5之间的兼容问题。我尝试了很多方法去修复这个问题,包括修改清单文件,但都没有成功。所以我觉得现在唯一的解决办法就是换成PyQt。

撰写回答