【问题标题】:PyCharm - colored output in django consolePyCharm - django 控制台中的彩色输出
【发布时间】:2020-04-14 15:52:45
【问题描述】:

问题是当我通过 Kubuntu 的 Konsole 应用程序启动开发服务器时,调试输出是彩色的:

但是当我通过 PyCharm 中的内置“运行”或“调试”启动它时,PyCharm 控制台中的输出都是红色的:

有没有办法让 PyC​​harm 中的输出变为彩色?因为我在“设置”中找不到任何相关内容。

UPD:指向 PyCharm 问题跟踪器上的问题的链接

我看到有人在讨论这个问题,所以这里是 PyCharm 问题跟踪器上的这个问题的链接 - youtrack.jetbrains.com/issue/PY-19790。如果你为这个功能投票,它会更快发布!

【问题讨论】:

  • @MaximeB 是的,我在设置中看到了这个选项卡,但据我了解,它将所有输入解释为“文件名的错误命令”或“日志错误”。关键是我没有在 Konsole 应用程序中配置任何东西,一开始它是彩色的。而且我认为这意味着它默认连接了一些用于彩色输出的配置之王,而 PyCharm 出于某种原因不这样做。
  • 也许 PC 控制台太“基本”,无法以这种方式显示...从来没有打扰过我。
  • 我同意,这里不包括“太基本”。它正在使用错误着色。这令人困惑和糟糕。

标签: django pycharm


【解决方案1】:

前段时间我写了一个代码 sn-p 来为我做这件事。这不是一个完美的解决方案,但可以解决问题。 BSD License

使用它:

  • 选项 1:git clone/download this 并将其导入某处(例如 django 开发设置)。阅读模块文档字符串和readme 了解详细信息。

  • 选项 2:将下面的代码 sn-p 包含到您的 django 开发/调试设置中(或其他任何地方,它将提前运行)。它会根据文件更改自动使用 SHA-2 进行验证。

try:  # Colored logger CaaS. Auto downloaded and verified.
    import os
    import hashlib
    from urllib import request
    url, sha256 = "https://lab.it.hs-hannover.de/lukyanch/pydevutils/raw/c531eaf7/colored_logger.py", "083e1a39cfdbe17a7126188b5477fb8f324be8106a39ed4a00faeb3f18c5aedc"
    cached_file = "/tmp/{0}.py".format(sha256)
    code = bool(os.path.exists(cached_file) or [request.urlretrieve(url, cached_file), print("Downloaded: " + url)]) and open(cached_file, "r").read()
    assert hashlib.sha256(code.encode()).hexdigest() == sha256, os.remove(cached_file) or "Bad content: " + cached_file
    exec(code)
except Exception as e:
    print("No colored logger: {e.__class__.__name__}: {e}".format(e=e))

【讨论】:

    【解决方案2】:

    “grep console”是完美处理这个问题的插件: https://plugins.jetbrains.com/plugin/7125-grep-console

    【讨论】:

      【解决方案3】:

      这是因为 PyCharm 的开发控制台没有使用与普通 shell 终端相同的标准来显示颜色(它们是两个非常不同的东西)。

      PyCharm 的输出控制台只是命令的显示(它不是一个包含本地终端模拟器所有花里胡哨的完整外壳)。

      您可以将终端嵌入到 PyCharm 中(请参阅documentation 了解如何设置它),但这样做不会让您将内置运行命令的输出重定向到终端窗口。它将使您能够在那里运行任意 shell 命令,而不必切换到终端控制台。

      请记住,如果您有任何特殊的 shell 自定义或字体/字形,这些可能无法在嵌入式终端中正确显示,因为它使用了不同的字体和配置集。

      您可以尝试在PyCharm bug tracker 上将此作为增强功能提出;如果它获得足够的选票,它可能会进入下一个版本。

      【讨论】:

      • 我不认为这是一个直接的答案。问题不在于控制台不能显示颜色。问题是它将所有输出都视为错误。开始运行时的文字不是红色的,所以至少可以显示2个状态,错误是不正确的。
      猜你喜欢
      • 2017-12-05
      • 1970-01-01
      • 2016-09-15
      • 2020-07-13
      • 1970-01-01
      • 2020-06-03
      • 2014-12-13
      • 2015-12-20
      • 1970-01-01
      相关资源
      最近更新 更多