fno*_*kke 7 python gtk cygwin wxpython
我已经安装和二者试图wxpython-3.0和wxpython-2.8用于python2.7从标准cygwin回购(64位,运7).但是,当我启动Cygwin X服务器并尝试从wxPython教程运行最简单的"Hello World"脚本时:
# 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()
Run Code Online (Sandbox Code Playgroud)
我得到一个Gtk-WARNING **: Screen for GtkWindow not set最终以a结尾segmentation fault.
该DISPLAY变量被设置为:0(export DISPLAY=:0),对应于所启动的X服务器.
在cygwin使用wxPython启动脚本之前,wxPython是否已被破坏或是否需要其他一些过程?
小智 2
我对此进行了测试并使其适用于我的 cygwin64 安装。我用了
两者都是通过 cygwin 安装程序安装的。我的 cygwin 安装中也有 python-2-wx2.8,我可以通过创建仅包含一行的文件 /usr/lib/python2.7/site-packages/wx.pth 来选择要使用的 python-2-wx2.8指定要通过“import wx”行导入的包的相对路径:
wx-3.0-gtk3
Run Code Online (Sandbox Code Playgroud)
或者
wx-2.8-gtk2-unicode
Run Code Online (Sandbox Code Playgroud)
当我使用后来的(wx-2.8-gtk2-unicode)时,我得到了与您提到的相同的错误,“断言'GDK_IS_DISPLAY(显示)'失败”,但是当我使用wx-3.0-gtk3时,错误消失并且脚本运行很好,我可以在 X 窗口中看到图形。