Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running wxpython app in cygwin/X

I have installed and tried both wxpython-3.0 and wxpython-2.8 for python2.7 from the standard cygwin repos (64-bit, Win 7). However when I start the Cygwin X server and try to run the most simple "Hello World" script from wxPython tutorials:

# test.py
import wx

app = wx.App(False)  # Create a new app, don't redirect stdout/stderr to a window.
frame = wx.Frame(None, wx.ID_ANY, "Hello World") # A Frame is a top-level window.
frame.Show(True)     # Show the frame.
app.MainLoop()

I get a Gtk-WARNING **: Screen for GtkWindow not set which eventually ends in a segmentation fault.

The DISPLAY variable is set to :0 (export DISPLAY=:0) and corresponds to the started X server.

Is wxPython broken in cygwin or is some other procedure necessary prior to launching a script using wxPython?

like image 304
fnokke Avatar asked Mar 14 '17 09:03

fnokke


1 Answers

I tested this and got it working for my cygwin64 installation. I used

  • python v2.7.14 and
  • cygwin package python-2-wx version 3.0.2.0-3

Both installed via the cygwin installer. I also have the python-2-wx2.8 in my cygwin install, and I can select which one is to be used by creating the file /usr/lib/python2.7/site-packages/wx.pth containing only one line specifying the relative path to the package to be imported by the "import wx" line:

wx-3.0-gtk3

or

wx-2.8-gtk2-unicode

When I use the later (wx-2.8-gtk2-unicode) I get the same error as you mention, "assertion 'GDK_IS_DISPLAY (display)' failed", but when I use wx-3.0-gtk3 the errors disappear and the script runs fine and I can see the graphics in my X-window.

like image 88
lamorwe Avatar answered Oct 01 '22 11:10

lamorwe