在Windows上的CygWin下调用python挂起

詹姆斯·坎泽:

安装新的Windows系统后,我已经在其默认位置(c:\cygwinc:\Python27\python)中安装了CygWin和64位Python(2.7.3),并将CygWin bin和Python目录都添加到了我的路径中(在用户变量PATH中)。在正常的命令窗口中,Python可以完美启动,但是当我bash在CygWin环境中调用它时,它挂起了,从不提示输入提示。

以前,我已经在其他计算机上完成了此操作,但是始终使用旧版本的Python(32位)和CygWin,以及在绝对非标准位置使用Python。其他人有这个问题吗,或者有人可以告诉我这可能是什么原因?

亚当·罗森菲尔德(Adam Rosenfield):

问题在于,由于Cygwin终端(MinTTY)的行为方式,Python的Windows本机内部版本没有意识到stdout是终端设备-它认为它是管道,因此它以非交互模式运行交互模式,并且完全缓冲其输出,而不是行缓冲。

这是新的原因可能是因为在您先前的Cygwin安装中,您没有MinTTY,并且使用的终端只是标准的Windows终端。

为了解决此问题,您需要从常规Windows终端(Cmd.exe运行Python ,或者安装Cygwin版本的Python,而不是Python的本机Windows版本。Cygwin版本(可通过Cygwin的软件包安装setup.exe)可理解Cygwin终端,并在通过MinTTY运行时表现适当。

如果所需的特定版本的Python不能作为Cygwin软件包提供,那么您还可以下载Python的源代码,并在Cygwin下自行构建。如果您还没有Cygwin(GCC),则需要一个Cygwin编译器工具链,但是我认为它应该使用标准./configure && make && make install命令进行编译

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章