首先, 默认安装的cygwin是不能运行窗口程序的

比如,一段python窗口程序:
import * from tkinter
Tk()
mainloop()
如果使用命令行:
python3 py.py #py.py内容是上段代码
会提示如下错误:
Traceback (most recent call last):
File "py.py", line , in <module>
Tk()
File "/usr/lib/python3.4/tkinter/__init__.py", line , in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
网上搜索,很多人说通过命令行:
export DISPLAY=:0.0
#或者
export DISPLAY=:
#抑或
export DISPLAY=localhost:12.0
然而,这个错误确实是变了,变成了这样:
Traceback (most recent call last):
File "py.py", line , in <module>
Tk()
File "/usr/lib/python3.4/tkinter/__init__.py", line , in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: couldn't connect to display ":0.0"
然后百度 cygwin tkinter display,出来的结果我只能用呵呵表示,最后还是用360搜索结合bing,慢慢理清的头绪
发现,如果想要运行窗口程序, 需要安装 x server.
可以选择xming x server,也就是cygwin/x
最新的cygwin/x 是集成在cygwin安装里的,在安装的时候选择安装程序的时候,添加xinit
我把xorg也选上了
完成安装后,我是用命令:
export DISPLAY=:0.0
startx
结果异常退出,提示:
$/usr/bin/xterm: Xt error: Can't open display: :0.0
Some products that have been reported to cause problems:
  Aventail Connect
  Zonealarm PC Firewall from Zonelab
Note: These products may not cause problems in all configurations. However, the Cygwin/X project has neither the time, ability, nor resources to help you correctly configure your third-party software.
吓得我赶紧把360那俩货关了,结果还是不行,看来是冤枉他们了,让后又360so,找到这么一句:
 Cygwin doesn't automatically start an X server. You need to install the packages xorg-server and xinit, and run startxwin.
阿西吧,原来是用命令:
export DISPLAY=:0.0
startxwin & #后面加上&就可以了继续在cygwin里面输入命令了,不出意外的话应该可以了,而且托盘会有xming的图标,可以从那退出
效果是这样的:
有x图标的那个就是x server
这是py.py运行的结果
startxwin &> x-server-log &
export DISPLAY=:0.0
就可以把标准输出和标准错误输出重定向的文件s-server-log中,在cygwin控制台中,就看不到x server的输出信息
如果每次启动都需要启动x server
可以在~/.bashrc 中在最后添加两行代码:
export DISPLAY=:0.0
startxwin &> x-server-log &

 

 

cygwin 运行窗口程序的更多相关文章

  1. vs2010运行C程序时,运行结果窗口一闪而过

    摘要:vs2010运行C程序时,运行结果窗口一闪而过; ------------------------------------------------------------ Ctrl F5测试运行 ...

  2. windows cmd窗口提示“telnet”命令不能内部或外部命令,也不是可运行的程序

    windows cmd窗口提示“telnet”命令不能内部或外部命令,也不是可运行的程序 原因:C:\Windows\System32目录下没有telnet.exe,path系统变量的值包含了C:\W ...

  3. cmd 窗口中运行 Java 程序

    1.CMD 命令提示符(Command Processor)(CMD) CMD命令:开始->运行->键入 cmd(在命令行里可以看到系统版本.文件系统版本) 2.对文件夹操作的部分命令 启 ...

  4. WinServer2008R2 + IIS 7.5 + .NET4.0 经典模式 运行WebAPI程序报404错误的解决方案

    在Windows Server 2008 R2系统下,IIS 7.5 + .NET Framework 4.0的运行环境,以经典模式(Classic Mode)部署一个用.NET 4.0编译的 Web ...

  5. windows批处理运行java程序

    明确需求 今天你编了一个java swing版照片查看器,想让计算机上的所有照片默认打开方式都改成你的照片查看器. 使用工具软件 很多工具软件都是不把jre打包到exe中的,这就是说打包之后的exe只 ...

  6. Cocos2dx集成于windows桌面窗口程序的步骤

    2D游戏需要做编辑器,而编辑器总是希望可以复用游戏中的逻辑来运行场景试看效果. 对于cocos2dx开发的程序,这个需求可以描述为: 实现一种方法,在桌面窗口程序中的某个控件上显示cocos2dx的场 ...

  7. C#:只运行一个程序

    一.通过系统事件 1.实现如下: using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  8. CentOS6.5 64bit 运行Mono程序

    前几日和一技术友聊天,认为转Java好,java可以在Linux下运行,貌似c#不可以哦,就做了个尝试,运行控制台程序和窗口程序(界面编程,Linux下Java好像也比较烦吧) 现在贴环境: 参考:C ...

  9. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...

随机推荐

  1. 理解MySQL——索引与优化(转)

    转自:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库 ...

  2. 如何理解java的引用传递

    1. 数组的引用传递 public class TestArray { public static void changeAry1(int[] ary){ int[] ary1 = {9,9,9}; ...

  3. Cocos2dx 3.1.1 学习笔记整理(1) 新建项目

    最近手痒了,不小心下载了cocos2dx 3.1.1,又搞了个VS2012,于是头脑发热的搞起 3.1.1了. 我是有多么的不专心啊. 已经把自己之前的学习内容从2.2.3迁移到了3.1.1,除了骨骼 ...

  4. Cocos2dx 学习笔记整理----在项目中使用图片(二)

    之前了解了一种比较简单的图片的使用方式, 今次来了解稍微复杂一点的图片使用方式,plist+png. 这里要用到之前提到的Texture Packer. Texture Packer是一款图片打包工具 ...

  5. 无限循环小数POJ1930

    题意:给定一个无限循环小数,求其分数形势,要求分母最小 分析:看了别人的题解才做出来的,将无限循环小数转化成分数,分为纯循环和混循环两种形式. (1)对于纯循环:用9做分母,有多少个循环数就几个9,比 ...

  6. 负载均衡 LVS+Keepalived

    系统  CentOS 5.6 X64 物理机 IP 10.10.10.104 Xen : 三台 CentOS 5.8 ip为: 10.10.10.106        10.10.10.107     ...

  7. Linux 环境编译安装mysql (源码安装包)

    标注: Linux需要先配置网络yum源,确定yum能在线安装软件包,方便测试过程中安装部分依赖包.配置163网易提示的网络yum源参考博客  http://www.cnblogs.com/zoulo ...

  8. Eclipse perl的IDE环境插件-EPIC

    前提:1.安装好perl环境:ActivePerl(验证方法:cmd中输入 perl -v 看是否有反应~) 2.安装Eclipse 3.0以上版本 可选:安装PadWalker包,主要是全局变量跟踪 ...

  9. iOS开发系统版本适配(未完待续。。。)

    1.iOS9引入了新特性App Transport Security (ATS).新特性要求App内访问的网络必须使用HTTPS协议:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用T ...

  10. Jquery的AJAX应用详解

    案例一:取得服务端当前时间 简单形式:jQuery对象.load(url),返回结果自动添加到jQuery对象代表的标签中间 <body> 当前时间: <span id=" ...