PyCharm - 在 Django 控制台中输出彩色文本

8
问题是,当我通过Kubuntu的Konsole应用程序启动dev-server时,调试输出是有颜色的: Konsole.png 但是,当我通过PyCharm中内置的“运行”或“调试”启动它时,PyCharm控制台中的输出全部都是红色: PyCharm.png 有没有办法让PyCharm中的输出也有颜色?因为我在设置中找不到相关信息。
更新:链接到PyCharm问题跟踪器上的问题
由于我看到有些人正在为这个问题投票,所以在此提供一个链接到PyCharm问题跟踪器上的这个问题 - youtrack.jetbrains.com/issue/PY-19790。如果您对此功能进行投票,它将更快地发布!

https://www.jetbrains.com/help/pycharm/2016.1/configuring-color-scheme-for-consoles.html - Maxime B
1
@MaximeB 是的,我看到了设置中的这个选项卡,但据我所知,它将所有输入解释为“文件名错误命令”或“日志错误”。问题是我没有在Konsole应用程序中配置任何内容,一开始就是彩色的。我认为这意味着它默认连接某种配置以获得彩色输出,并且由于某种原因,PyCharm没有这样做。 - Compadre
也许PC控制台太“基础”无法以这种方式显示...但这从未困扰过我。 - Maxime B
我同意,“太基础”在这里无法涵盖。它正在使用错误着色。这很令人困惑和不好。 - Rafe
3个回答

1

你如何进行配置? - Kodeeo
点击grep控制台图标(红笔)。在“高亮显示”部分,单击“添加新项目”,添加一个正则表达式以过滤特定模式(例如.*ERROR.*)。然后在这一行上选择背景或前景,并选择您喜欢的颜色。 - Davy

1

前段时间我写了一段代码片段,可以帮我完成这个功能。它不是完美的解决方案,但足以胜任。BSD许可证

使用方法:

  • 选项1:克隆/下载它并将其导入到某个地方(例如django开发设置)。阅读模块文档字符串和自述文件以获取详细信息。

  • 选项2:将下面的代码片段包含在您的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))

enter image description here


0

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

PyCharm的输出控制台只是命令的显示(它不是一个完整的带有所有铃声和哨子的本地终端仿真器)。

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

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

您可以尝试在PyCharm bug跟踪器上提出此增强要求;如果得到足够的投票,它可能会被纳入下一个版本。


2
我不认为这是一个直接的答案。问题不在于控制台不能显示颜色,而在于它将所有输出都视为错误。当开始运行时,文本不是红色的,因此它至少可以显示2种状态,而错误是不正确的。 - Rafe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接