cygwin中运行python不能进入交互模式

可以使用以下方式进入:

python -i

 具体分析如下:

正的问题是,当你在任何Cytwin终端程序(如mintty)中运行命令时,它们不会充当Windows控制台。只有像CMD或Console2这样的基于Windows控制台的人才能做到这一点。所以,使用Cygwin终端时,Windows python.exe并不认为它正在与交互式控制台交谈。

这会导致缓冲输出,而不是像在交互式会话中那样在每行上刷新缓冲区。这就是为什么Amro在每行添加flush()修复症状,但意味着更改代码。

不改变代码的一种解决方案是使用命令行中的'-u'标志关闭Python中的缓冲或设置PYTHONUNBUFFERED环境变量。

export PYTHONUNBUFFERED=1

/cydrive/c/Python27/python.exe foo.py

要么

/cydrive/c/Python27/python.exe -u foo.py

或以交互模式运行

/cydrive/c/Python27/python.exe -i foo.py

你也将无法在Cygwin终端中运行Windows python.exe交互模式。它不会启动交互式会话,但会挂起。我发现最好的解决方案似乎是使用'cygstart'(比使用'-i'选项更好):

cygstart /cygdrive/c/Python27/python.exe

这似乎也适用于ipython(如果安装):

cygstart /cygdrive/c/Python27/Scripts/ipython.exe
原文地址:https://www.cnblogs.com/andy-0212/p/10073673.html