繁体   English   中英

如何从PyCharm中从Bash调用的Python 2.7脚本打印?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM