可以使用以下方式进入:
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