【问题标题】:wxPython version issuewxPython版本问题
【发布时间】:2018-03-28 10:09:55
【问题描述】:

运行 Ubuntu 14.04 和 Eclipse Kepler Service Release 2,其中包含 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 at 0.6.0 并得到以下错误:

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

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

【问题讨论】:

    标签: python eclipse ubuntu wxpython


    【解决方案1】:

    我遇到了同样的问题,只是我在 unpiclikg 上遇到了 _gdi.Colour 类的实例。听从Unpickling python objects with a changed module path 的建议,我得救了:

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

    这当然是一个 hack,你最好使用 try-except (未经测试)

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

    【讨论】:

      【解决方案2】:

      wxPython 命名空间非常非常古老。就像十多年来一样。如果我没记错的话,它在 2.7 中已被弃用,并且仅在 2.8 中作为精简的兼容性填充程序提供,目的是到那时所有人都应该迁移到新的 wx 命名空间。兼容性垫片在 2.9 中被移除。

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

      【讨论】:

      • 有没有办法让我的程序在 16.04 中运行而无需重新编码?
      • 您可以获取 wxPython 代码的旧副本并自己构建它,但这可能比更新您的应用程序需要更多的工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多