Python-nohup.out don';不显示打印语句

Python-nohup.out don';不显示打印语句,python,nohup,Python,Nohup,我不熟悉python和web开发,我有一个基本问题 我使用pyramid运行服务器,并使用nohup.out将输出写入文件 nohup ../bin/pserve development.ini 当我做tail-f nohup.out 我可以在我的代码中看到来自logging.info()调用的所有输出。 但是我没有看到print()调用的所有输出 原因是什么?我如何设置才能在nohup文件中看到print() 打印输出在不发送到终端时被缓冲nohup用一个非终端(实际上是一个文件)替换s

我不熟悉python和web开发,我有一个基本问题 我使用pyramid运行服务器,并使用nohup.out将输出写入文件

nohup ../bin/pserve development.ini  
当我做
tail-f nohup.out

我可以在我的代码中看到来自
logging.info()
调用的所有输出。
但是我没有看到
print()
调用的所有输出


原因是什么?我如何设置才能在nohup文件中看到print()

打印输出在不发送到终端时被缓冲
nohup
用一个非终端(实际上是一个文件)替换stdout


在没有任何代码的情况下,我所能做的就是猜测,但最有可能的答案是,您的输出在python进程中被缓冲,当缓冲区填满时,它将被刷新到
nohup.out
。若要查看是否存在这种情况,请尝试添加更多打印以更快地填充缓冲区。

您可以使用stdbuf-oL刷新打印语句。命令看起来像

nohup stdbuf -oL python python_script.py > nohup.out &
你可以用

nohup python -u python_script.py &

感谢您的帮助性回答,但我认为您的命令需要以
&
结束,对吗?
-u:强制取消stdout和stderr的二进制I/O层缓冲;stdin总是缓冲的;文本I/O层将进行行缓冲;另外,pythonunbuffer=x
python-u
对我有效,而stdbuf-oL-elpython对我无效