我已从标准wxpython-3.0
repos(64位,Win 7)中为wxpython-2.8
安装并试用了python2.7
和cygwin
。然而,当我启动Cygwin X服务器并尝试运行最简单的" Hello World"来自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()
我得到Gtk-WARNING **: Screen for GtkWindow not set
,最终以segmentation fault
结尾。
DISPLAY
变量设置为:0
(export DISPLAY=:0
)并对应于已启动的X服务器。
在使用wxPython启动脚本之前,cygwin
中的wxPython是否被破坏或者是否需要其他一些过程?
答案 0 :(得分:2)
我对此进行了测试,并使其可用于cygwin64安装。我用
两者均通过cygwin安装程序安装。 我在cygwin的安装程序中也有python-2-wx2.8,可以通过创建仅包含一行的文件/usr/lib/python2.7/site-packages/wx.pth选择要使用的文件。通过“ import wx”行指定要导入的软件包的相对路径:
wx-3.0-gtk3
或
wx-2.8-gtk2-unicode
当我使用更高版本(wx-2.8-gtk2-unicode)时,出现与您提到的相同的错误,“断言'GDK_IS_DISPLAY(display)'失败”,但是当我使用wx-3.0-gtk3时,错误消失并且脚本运行正常,我可以在X窗口中看到图形。
答案 1 :(得分:0)
尝试使用startxwin
命令而不是xinit
启动X服务器。
startxwin &
export DISPLAY=:0.0
./test.py
我能够使用此序列运行您的测试代码。