运行 cygwin/X 中的 wxpython 应用程序
Running wxpython app in cygwin/X
我已经从标准 cygwin
存储库(64 位,Win 7)安装并尝试了 wxpython-3.0
和 wxpython-2.8
for python2.7
。但是,当我启动 Cygwin X 服务器并尝试 运行 来自 wxPython tutorials:
的最简单的 "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()
我得到一个 Gtk-WARNING **: Screen for GtkWindow not set
,它最终以 segmentation fault
结尾。
DISPLAY
变量设置为:0
(export DISPLAY=:0
)对应启动的X服务器。
wxPython 是否在 cygwin
中损坏或在使用 wxPython 启动脚本之前是否需要一些其他程序?
尝试使用 startxwin
命令而不是 xinit
启动 X 服务器。
startxwin &
export DISPLAY=:0.0
./test.py
我能够得到你的测试代码运行这个序列。
我对此进行了测试并使其适用于我的 cygwin64 安装。我用了
- python v2.7.14 和
- cygwin 包 python-2-wx 版本 3.0.2.0-3
两者都是通过 cygwin 安装程序安装的。
我的 cygwin 安装中也有 python-2-wx2.8,我可以 select 通过创建文件 /usr/lib/python2.7/[=29= 来使用哪个.pth 仅包含一行指定要导入的包的相对路径 "import wx" 行:
wx-3.0-gtk3
或
wx-2.8-gtk2-unicode
当我使用后者 (wx-2.8-gtk2-unicode) 时,我得到了与您提到的相同的错误,"assertion 'GDK_IS_DISPLAY (display)' failed",但是当我使用 wx-3.0-gtk3 时,错误消失并且脚本运行很好,我可以在我的 X-window.
中看到图形
我已经从标准 cygwin
存储库(64 位,Win 7)安装并尝试了 wxpython-3.0
和 wxpython-2.8
for python2.7
。但是,当我启动 Cygwin X 服务器并尝试 运行 来自 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 启动脚本之前是否需要一些其他程序?
尝试使用 startxwin
命令而不是 xinit
启动 X 服务器。
startxwin &
export DISPLAY=:0.0
./test.py
我能够得到你的测试代码运行这个序列。
我对此进行了测试并使其适用于我的 cygwin64 安装。我用了
- python v2.7.14 和
- cygwin 包 python-2-wx 版本 3.0.2.0-3
两者都是通过 cygwin 安装程序安装的。 我的 cygwin 安装中也有 python-2-wx2.8,我可以 select 通过创建文件 /usr/lib/python2.7/[=29= 来使用哪个.pth 仅包含一行指定要导入的包的相对路径 "import wx" 行:
wx-3.0-gtk3
或
wx-2.8-gtk2-unicode
当我使用后者 (wx-2.8-gtk2-unicode) 时,我得到了与您提到的相同的错误,"assertion 'GDK_IS_DISPLAY (display)' failed",但是当我使用 wx-3.0-gtk3 时,错误消失并且脚本运行很好,我可以在我的 X-window.
中看到图形