Colorama for Python, Returnerer ikke farvede udskriftslinjer på Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har installeret colorama for python. Jeg har importeret modulet som følger:


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

print Fore.RED + "My Text is Red"


og det returnerer ANSI-charatørerne ....


esc[31mMy Text is Red


Dette er ikke det, jeg havde forventet. Gør jeg noget galt.


Tak.

Bedste reference


Jeg havde det samme problem på Windows 7 x64, jeg fik endelig farverne til at fungere uden at skulle installere noget nyt ved blot at tilføje argumentet convert=True til init-opkaldet.


from colorama import init, Fore, Back, Style

init(convert=True)

print(Fore.RED + 'some red text')

Andre referencer 1


Jeg har aldrig haft succes med at få farver til at fungere i Windows cmd.exe uden at patchere det med Ansicon. Efter patching vil ANSI farvekoder arbejde uden at skulle bruge noget som colorama (som heller ikke fungerede for mig).


For at patch cmd.exe med Ansicon skal du gøre følgende:



  1. Download Ansicon fra https://github.com/adoxa/ansicon/downloads og pak det ud i en mappe uden mellemrum

  2. Brug en cmd-prompt og naviger til, hvor du har pakket den ud.

  3. cd i x64-mappen (medmindre du har en 32bit-maskine, brug derefter x86-en)

  4. type ansicon.exe –i

  5. Åbn en ny cmd-prompt



via: https://stackoverflow.com/a/4749307/191902[10]


Hvis du har et NVidia grafikkort, skal du muligvis indstille miljøvariablen 'ANSICON\_EXC' til 'nvd3d9wrap.dll'.

Andre referencer 2


Det er normalt, fordi du ikke har ANSI på Windows.


Prøv noglehting som tendo.colorer, og dette vil muliggøre farvning for alle platforme. [12]


Bemærk: tendo.colorer tilføjer farvning til logfilerne, men jeg er sikker på, at du vil finde ud af, hvordan du bruger den til andre ting. Hvis jeg ikke fejler bare at importere den før din kode, løser det problemet.

Andre referencer 3


Du kan kun bruge importen til én import. såsom:


from colorama import init, Fore, Back, Style

init()


og du kan prøve det nu:


print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Fore.RESET + Back.RESET + Style.RESET\_ALL)

Andre referencer 4


Prøv følgende:


import colorama

colorama.init()
print colorama.Fore.GREEN + " Hey, im green! "