交互式无法运行python_cygwin中运行python不能进入交互模式

本文介绍了在Cygwin环境下运行Python时遇到的输出缓冲问题,以及如何通过设置Python命令行参数或环境变量来解决。在Cygwin终端中,Python的输出会被缓冲,导致无法实时显示。解决方案包括使用'-u'标志或设置PYTHONUNBUFFERED环境变量,或者使用'cygstart'命令来启动Python。此外,文章还提到了交互模式下的问题及解决方法。
摘要由CSDN通过智能技术生成

可以使用以下方式进入:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值