为了账号安全,请及时绑定邮箱和手机立即绑定

Kubernetes 日志未显示 python 打印方法的输出

Kubernetes 日志未显示 python 打印方法的输出

守着星空守着你 2022-07-12 17:41:27
我有一个 python 应用程序,我在其中使用print()向用户显示文本的方法。当我使用命令手动与此应用程序交互时,kubectl exec ...我可以看到打印的输出。但是,当脚本在容器启动时使用CMD python3 /src/my_app.py(最后一个条目Dockerfile)自动执行时,打印就消失了(未显示在 中kubectl logs)。Ayn 建议如何解决它?
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

原来是python环境的问题。设置,这两个环境变量PYTHONUNBUFFERED=1PYTHONIOENCODING=UTF-8解决了这个问题。



查看完整回答
反对 回复 2022-07-12
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

这是因为 stdout 和 stderr 流在 Python 中被缓冲。

您可以将环境变量设置为PYTHONUNBUFFERED=1True

你也可以-u在你的Dockerfile.

-u

强制 stdout 和 stderr 流无缓冲。此选项对标准输入流没有影响。

在 3.7 版更改: stdout 和 stderr 流的文本层现在是无缓冲的。


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 280 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号