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