wxPython版本问题

时间:2017-10-16 19:42:02

标签: python eclipse ubuntu wxpython

使用Eclipse Kepler Service Release 2运行Ubuntu 14.04,它具有Pydev 4.4.0.2 ...和Pydev Mylyn Integration 0.6.0。我的程序运行没有问题。将它移植到运行Ubuntu 16.04的新平台上,使用Eclipse Oxygen 1A版本4.7.1A和Pydev 6.0.0 ...与Pydev Integration在0.6.0并获得以下错误:

from wxPython._gdi import wxBitmapFromImage
ImportError: No module named wxPython._gdi

我可以在Eclipse(控制台)或新的ubuntu版本的终端shell上导入wx,但在键入第1行时会出现第2行错误。我的14.04正在运行wxpython 2.8,而我的新16.04正在运行3.0,但不确定是不是这样。

2 个答案:

答案 0 :(得分:0)

wxPython命名空间非常非常古老。十多年来一直如此。如果我没记错的话,它在2.7中已被弃用,并且仅作为2.8中的瘦兼容性垫片提供,目的是所有应该迁移到新的wx命名空间。兼容性垫片在2.9中删除。

更改的要点是位于wxFrame命名空间中的wxPython或其子模块之类的名称已更改为Frame命名空间中的wx之类的名称。换句话说,它应该像这样使用:wx.Frame

答案 1 :(得分:0)

除了遇到_gdi.Colour类实例外,我遇到了同样的问题。遵循Unpickling python objects with a changed module path的建议,我被保存为:

import wx as _wx
from wx import _core
sys.modules['wx._gdi'] = _core

这当然是黑客,您可以尝试尝试(除非经过测试),否则效果更好

try:
   from wxPython._gdi import wxBitmapFromImage
except ImportError:
   from wx import BitmapFromImage as wxBitmapFromImage