我是python和web开发的新手,我有一个基本的问题我相信 我用金字塔运行我的服务器,并使用nohup.out将输出写入文件。
nohup ../bin/pserve development.ini
当我做tail -f nohup.out
时
我可以在代码中看到来自logging.info()
调用的所有输出
但我没有看到print()
来电的所有输出。
这是什么原因,我如何设置它会在nohup文件中看到print()?
答案 0 :(得分:10)
您可以使用stdbuf -oL来刷新print语句。命令看起来像
nohup stdbuf -oL python python_script.py > nohup.out &
答案 1 :(得分:4)
您可以使用
nohup python -u python_script.py &
答案 2 :(得分:2)
当没有到终端时,打印输出被缓冲。 nohup
将stdout替换为非终端(实际上是文件)。
在没有任何代码的情况下,我所能做的就是猜测,但最可能的答案是你的输出在python进程中被缓冲,当缓冲区填充时,它将被刷新到nohup.out
。要查看是否是这种情况,请尝试添加更多打印件以更快地填充缓冲区。