gpt4 book ai didi

python - 打印彩色输出 - 从控制台工作而不是从脚本工作

转载 作者:可可西里 更新时间:2023-11-01 14:13:50 38 4
gpt4 key购买 nike

我有一个奇怪的问题,我无法解决。我使用(并不时贡献)一个程序,它对控制台输出进行了着色。在我重新安装 Windows 之前,一切都很好。现在我无法获得彩色输出。

这是 script用于着色。

我已经设法将问题缩小到或多或少的简单情况,但我不知道哪里出了问题。

这是按预期工作的控制台提示(字符串 test 以红色打印):

Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.insert(0, r'c:\bin\SV\tea\src')
>>> from tea.console.color import cprint, Color
>>> cprint('test\n', Color.red)
test
>>>

但是当我使用相同版本的 python 运行以下脚本时,我得到输出 test 但不是红色(没有颜色,只有默认控制台颜色):

import sys
sys.path.insert(0, r'c:\bin\SV\tea\src')

from tea.console.color import cprint, Color
cprint('test\n', Color.red)
  • 在我重新安装系统之前,相同的设置工作正常。
  • 我已经检查过,交互模式和脚本中的环境变量是一样的。
  • 我已经在标准的 Windows 命令提示符和控制台中尝试过这个,我的程序通常使用。
  • 有问题的操作系统是 Windows 8,在重新安装之前,它也在 Windows 8 上使用过。
  • 具有相同设置的相同代码可在工作计算机 (Windows 7) 上运行。
  • 我安装了 Python 2.7 和 Python 3.3(和以前一样)。我试过运行脚本直接调用 python 解释器 (c:\Python27\python.exe) 或使用 py -2,但它没有帮助。
  • IPython 和 mercurial 为输出着色。

有什么想法可以让这项工作成功吗?

编辑:

也许不清楚,但我用来为输出着色的脚本在相关链接中给出。又是这样: https://bitbucket.org/alefnula/tea/src/dc14009a19d66f92463549332a321b29c71d47b8/src/tea/console/color.py?at=default

最佳答案

我已经找到了问题和解决方案。

我认为问题出在 x64 ctypes 模块中的错误。我安装了 Python 2.7 x64 并且该版本在下面一行(来 self 有问题链接的脚本):

ctypes.windll.kernel32.SetConsoleTextAttribute(std_out_handle, code)

返回错误代码 6 以及描述 The handle is invalid。经过一番调查,我推断问题可能是 python 的 x64 版本,所以我安装了 32 位版本,一切正常。

因为这解决了我的问题,而且我没有时间进行更深入的分析,我将把它留在这里,只是想为问题提供某种解决方案。

关于python - 打印彩色输出 - 从控制台工作而不是从脚本工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14991594/

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