![](/img/trans.png)
[英]How do I kill a PowerShell script that is invoked from a Python GUI?
[英]How do I print from a Python 2.7 script invoked from Bash within PyCharm?
例如,如果我有一个python脚本test.py
包含
import time
print 'foo'
time.sleep(5)
print 'bar'
time.sleep(5)
和一个shell脚本run_test.sh
包含
#!/usr/bin/env bash
python test.py
然后在PyCharm(2016.1)中运行后者(例如,使用“运行”菜单项),直到整个脚本完成(大约10秒钟后),才输出任何输出。
当我的shell脚本运行时,有没有一种打印输出的方法?
看起来您需要显式刷新缓冲区:
import sys
print 'foo'
sys.stdout.flush()
time.sleep(5)
print 'bar'
sys.stdout.flush()
time.sleep(5)
请参阅为每次打印后自动刷新的Python 2解决方案禁用输出缓冲 。
在您的情况下,由于您控制运行Python的bash文件,因此只需添加-u
或设置PYTHONUNBUFFERED=1
:
python -u test.py
要么
PYTHONUNBUFFERED=1 python test.py
只需添加到@MartijnPieters关于PyCharm 的答案中 :
在PyCharm中,在Run- > Edit Configurations下设置shell脚本的运行 配置 ,如下所示:
请注意PYTHONUNBUFFERED=1
。
您可能必须先在左侧的默认菜单下添加Bash运行配置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.