Hi, because of wxPython/src/helpers.cpp directly accessing a Gtk (gdk) structure (in macro GetXWindow) wxpython also requires gtk as regular input.
I've tested it in $ guix environment --pure --ad-hoc python2-wxpython python-2 -- python using: import wxversion wxversion.select("3.0") import wx, wx.html from wx import glcanvas import wx.lib.fancytext import sys app = wx.App(redirect=True) # Error messages go to popup window top = wx.Frame(None) box = wx.BoxSizer(wx.VERTICAL) top.SetSizer(box) #panel = wx.Panel(top) canvas = glcanvas.GLCanvas(top) box.Add(canvas) canvas.Show() top.Show() app.MainLoop() app = wx.App(redirect=True) top = wx.Frame(None, title="Hello World", size=(300,200)) top.Show() app.MainLoop() #from wx import glcanvas #from OpenGL.GL import * #frame = GLFrame(None, -1, 'GL Window') #frame.Show() #app.MainLoop() #app.Destroy() The wxpython inputs I used were: (native-inputs `(("mesa" ,mesa) ; for glcanvas ("pkg-config" ,pkg-config) ("python2-setuptools" ,python2-setuptools))) (inputs `(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp ("wxwidgets" ,wxwidgets-gtk2))) If we even built the X11 backend of wxwidgets, we would require an input "libx11" - otherwise not. While wxpython glcanvas isn't very useful without mesa, it doesn't really require it. As you can see above it can still be imported without mesa. Therefore, I think the above is the final version of the inputs we should use for wxpython.