wxPython在Python2.6中的运行问题及解决方案


这里所说的wxPython运行问题是指,在xp及之后的操作系统中使用基于Python2.x的wxPython,会出现任何程序都无法正常运行的问题。

主要表现如下:

当鼠标指针移动到运行中的wxPython程序窗口中时,程序会出现错误提示,并直接退出,而无法正常运行!甚至wxPython的Demo程序也是一样。

这个问题在wxPython的说明文件中有提到,只是大家一般不太注意而已:

PYTHON 2.6 NOTE

If you are using Python 2.6 you may notice that your wxPython
applications on XP or Vista are not using the newer themed controls.
This happens because Windows is loading the old version of the common
controls DLL instead of the new version. In order to change this we
need to change the menifest resource embedded in the executable file.
To help you do this we’ve installed a script next to your python.exe
called update_manifest.py which you can run to replace the manifest
resource in both python.exe and pythonw.exe, however it may not be
able to update a python executable that is un use running some script
(including update_manifest) so you may need to create a copy of
python.exe and use the copy to run the script in order for it to be
successful.

上面的大意是:由于python.exe和pythonw.exe中的manifest设置使用的windows公共控件信息设置存在问题,在xp和vista系统中会现问题,需要python使用者手动更新其中的manifest设置!

安装wxPython之后,在python的主文件夹中会出现update_manifest.py的脚本,这是wxPython提供的用于更新manifest设置的脚本,运行之就可以了!

但是python脚本需要python.exe(或pythonw.exe支持),导致python处于运行状态而无法修改,这是windows的文件保护机制引起的,所以需要通过技巧绕过!

按照如下方法操作即可:

1.在python的主文件夹复制一份python.exe文件,比如复制并重命名为pythonc.exe

2.使用上面复制的文件(pythonc.exe)运行update_manifest.py脚本即可

如下:打开cmd,进入python的主目录,执行命令:pythonc update_manifest.py即可,按照提示操作

好了!以后再执行wxPython程序就没有问题了


文章作者: 2356
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 2356 !