gpt4 book ai didi

python - 如何检测 Python 中的伪控制台以激活着色?

转载 作者:行者123 更新时间:2023-11-28 17:19:33 28 4
gpt4 key购买 nike

支持控制台着色的应用程序的通常规则是在当前控制台为 TTY 时激活它。

此方法在持续集成服务器(如 Jenkins、Travis 等)上中断,因为它们不会为其伪控制台打开 TTY。

我想知道是否可以区分这两种情况:

  • mycommand 在 Jenkins 下运行 - 我们想要启用着色
  • mycommand >> output.log -- 我们不想在日志文件中以 ANSI 转义结束。

我的旧 ANSI 检测代码:

import sys
import os

if (hasattr(sys.stderr, "isatty") and sys.stderr.isatty()) or \
('TERM' in os.environ.keys() and os.environ['TERM'] in ['linux']) or \
('PYCHARM_HOSTED' in os.environ.keys()):
coloring = True

我可以改进它以解决这个问题吗?

最佳答案

由于您已经在使用环境变量 PYCHARM_HOSTED,我建议您对 CI 环境使用类似的变量。你特别提到了 Jenkins 和 Travis。这两个系统都设置了可以使用的环境变量。一些可能性是...

Jenkins 环境变量:

JENKINS_URL  Set to the URL of the Jenkins master that's running the build.
BUILD_URL The URL where the results of this build can be found.
BUILD_TAG String of jenkins-${JOB_NAME}-${BUILD_NUMBER}.

( Source )

Travis 环境变量:

CI=true
TRAVIS=true
CONTINUOUS_INTEGRATION=true

( Source )

关于python - 如何检测 Python 中的伪控制台以激活着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246713/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com