Python 3.2 中的 Colorama AssertionError

3

我最近开始使用Python 3.2,并且以前从未尝试过编程。我将colorama文件夹复制到C:\Python32\lib的lib目录中,然后尝试着创建了以下代码,希望实现一个基于文本的冒险游戏:

 import colorama
    from colorama import Fore, Back, Style
    colorama.init()

    notedaction = "You have gained a SWORD AND SHIELD!"
    uniqueskill = "strength"

        if 'strength' in uniqueskill.lower():
           time.sleep(3)
           print('As you are a Warrior, I shall supply you with the most basic tools every Warrior needs.')
           time.sleep(3)
           print('A sword and shield.')
           time.sleep(1)
           print(Fore.RED + notedaction)

然而,每当我到达代码的这个部分时,就会出现以下错误:
  File "<pyshell#10>", line 7, in <module>
    print(Fore.RED + notedaction)
  File "C:\Python32\lib\colorama\ansitowin32.py", line 34, in write
    self.__convertor.write(text)
  File "C:\Python32\lib\colorama\ansitowin32.py", line 115, in write
    self.write_and_convert(text)
  File "C:\Python32\lib\colorama\ansitowin32.py", line 140, in write_and_convert
    self.convert_ansi(*match.groups())
  File "C:\Python32\lib\colorama\ansitowin32.py", line 154, in convert_ansi
    self.call_win32(command, params)
  File "C:\Python32\lib\colorama\ansitowin32.py", line 175, in call_win32
    func(*args, **kwargs)
  File "C:\Python32\lib\colorama\winterm.py", line 48, in fore
    self.set_console(on_stderr=on_stderr)
  File "C:\Python32\lib\colorama\winterm.py", line 68, in set_console
    win32.SetConsoleTextAttribute(handle, attrs)
  File "C:\Python32\lib\colorama\win32.py", line 66, in SetConsoleTextAttribute
    assert success
AssertionError

有什么想法是错的吗?

1
http://code.google.com/p/colorama/issues/detail?id=19 - Apalala
嘿,我是 Colorama 的作者。我不知道如何修复 Colorama 中的这个 bug。它使用了 win32 调用,在 IDLE 中调用时会失败。也许如果我停止对 win32 调用返回值的 'success' 断言就更有用了。这将使异常消失(但当然,我们仍然没有任何彩色输出,这是 Colorama 的重点)。有什么想法吗? - Jonathan Hartley
1个回答

3
似乎是一个问题:colorama 0.1.18 在 IDLE 中出现问题,建议在真正的 Python 解释器中尝试。 详情请见此链接

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