Python 你怎么开始工作?

Python 你怎么开始工作?,python,tkinter,cygwin,x11,Python,Tkinter,Cygwin,X11,我很难让我的Cygwin安装的Tkinter正常工作。它似乎比任何教程都要复杂得多,这让我怀疑我是否用错了 这是我的“你好,世界”节目 所以要运行这个程序,我必须初始化X11,对吗?(为什么在任何教程中都没有提到这个部分?) 为了初始化X11,我尝试在控制台中使用命令“bash startxwin”,如图所示,但我只得到错误“bad”add“command line” 所以我使用了命令“xwin”,它创建了一个巨大的黑色窗口。运行我的程序会导致窗口关闭。但我希望它出现在自己的窗口中 这显然不是我

我很难让我的Cygwin安装的Tkinter正常工作。它似乎比任何教程都要复杂得多,这让我怀疑我是否用错了

这是我的“你好,世界”节目

所以要运行这个程序,我必须初始化X11,对吗?(为什么在任何教程中都没有提到这个部分?)

为了初始化X11,我尝试在控制台中使用命令“bash startxwin”,如图所示,但我只得到错误“bad”add“command line”

所以我使用了命令“xwin”,它创建了一个巨大的黑色窗口。运行我的程序会导致窗口关闭。但我希望它出现在自己的窗口中


这显然不是我想象中的简单图书馆。这感觉很神秘。我做错什么了吗?

我知道这很旧,但它帮助我解决了这个问题。我也在Windows10上。 您必须运行本机X服务器。请参阅@speaker to animals的答案。 上面的os.environ命令与CMD中的SET DISPLAY=:0.0相同。 在Windows机箱上启动Xorg服务器,但没有客户端,因此它正在后台等待。
通过此设置,您的上述代码可以完全按照您的要求工作。我是通过Windows命令运行的,不是Cygwin。我用它向测试用例中添加GUI—测试人员喜欢它。

我知道这很旧,但它帮助我解决了这个问题。我也在Windows10上。 您必须运行本机X服务器。请参阅@speaker to animals的答案。 上面的os.environ命令与CMD中的SET DISPLAY=:0.0相同。 在Windows机箱上启动Xorg服务器,但没有客户端,因此它正在后台等待。
通过此设置,您的上述代码可以完全按照您的要求工作。我是通过Windows命令运行的,不是Cygwin。我用它将GUI添加到测试用例中-测试人员喜欢它。

我很确定使用Tkinter不需要X11或Cygwin–我在Windows/一些类似Unix的系统(OS X、Ubuntu)上使用过Tkinter,但从未处理过这一问题。尝试删除
os.environ['DISPLAY']=':0'
行,看看它是否正常工作–我以前从未见过/使用过该设置。删除该行会导致“无显示名称和无$DISPLAY环境变量”错误。您确定需要在Cygwin上运行此脚本吗,哪个不是操作系统,而是一个简单的Unix仿真器,它允许您使用Unix语法和命令?您是如何安装tinker的?为什么不从菜单中运行X?tkinter是一个简单的库。cygwin不是一种简单的运行方式。你必须通过cygwin运行它有什么原因吗?我很确定你不需要X11或cygwin来使用Tkinter–我在Windows/一些类似Unix的系统(OS X、Ubuntu)上使用过Tkinter,但从未处理过这个问题。尝试删除
os.environ['DISPLAY']=':0'
行,看看它是否正常工作–我以前从未见过/使用过该设置。删除该行会导致“无显示名称和无$DISPLAY环境变量”错误。您确定需要在Cygwin上运行此脚本吗,哪个不是操作系统,而是一个简单的Unix仿真器,它允许您使用Unix语法和命令?您是如何安装tinker的?为什么不从菜单中运行X?tkinter是一个简单的库。cygwin不是一种简单的运行方式。你为什么要通过cygwin运行这个?
#!/usr/bin/python
import os
import tkinter as tk

os.environ['DISPLAY'] = ':0'

root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
label = tk.Label(frame, text="Hey there.")
label.pack()
quitButton = tk.Button(frame, text="Quit", command=frame.quit)
quitButton.pack()
root.mainloop()