2012-03-24 21 views
8

Ich habe Colorama für Python installiert. Ich habe das Modul importiert wie folgt:Colorama für Python, Keine farbigen Druckzeilen unter Windows

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

print Fore.RED + "My Text is Red" 

und es gibt die ANSI Charaters ....

esc[31mMy Text is Red 

Das isn `t, was ich erwartet hatte. Mache ich etwas falsch.

Danke.

+1

Auf welchem ​​Betriebssystem laufen Sie? –

+0

Ich bin Windows 7 64 Bit .... – Mike

+3

Laufen Sie dies auf der Eingabeaufforderung, oder in einer IDE? Es sollte in Eingabeaufforderung funktionieren, aber nicht in IDLE oder Eclipse Pydev zum Beispiel. – Junuxx

Antwort

0

Das ist normal, weil Sie ANSI unter Windows nicht haben.

Versuchen Sie etwas wie tendo.colorer und dies wird Färbung für alle Plattformen ermöglichen.

Hinweis: tendo.colorer fügt den Protokollen Farbe hinzu, aber ich bin mir sicher, dass Sie herausfinden werden, wie Sie es für andere Dinge verwenden können. Wenn ich nicht irre, wenn ich es nur vor dem Code importiere, behebt es das Problem.

+1

Sie vermissen den Punkt. OP gibt ausdrücklich an, dass er bereits die [colorama] (http://pypi.python.org/pypi/colorama) -Bibliothek besitzt. – Junuxx

+0

@Junuxx, vielleicht so, aber wenn es nicht funktioniert, was das OP will, sollten Alternativen vorgeschlagen werden. Ich hatte dieses Problem mit colorama nicht unter Windows funktioniert. Das tendo.colorer Modul hat bei mir funktioniert. Obwohl die URL jetzt https://github.com/pycontribs/tendo/blob/master/tendo/colorer.py ist –

-6

Versuchen Sie Folgendes:

import colorama 

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

Dies ist nicht anders als das Beispiel in der Frage, nur mit oberflächlich anderen Import-Syntax. – Junuxx

+0

Das gleiche wie die Frage. –

5

Ich habe Erfolg hatte nie Farben immer in Windows cmd.exe arbeiten, ohne es mit Ansicon zu Patchen. Nach dem Patchen funktionieren die ANSI-Farbcodes, ohne dass Sie etwas wie colorama verwenden müssen (was auch bei mir nicht funktioniert hat).

Um cmd.exe mit Ansicon zu patchen, gehen Sie wie folgt vor:

  1. Herunterladen Ansicon von https://github.com/adoxa/ansicon/downloads und es in ein Verzeichnis ohne
  2. Verwenden Sie eine Befehlszeile Leerzeichen entpacken und navigieren, wo Sie es dekomprimiert haben.
  3. CD in das x64-Verzeichnis (wenn Sie eine 32-Bit-Rechner haben, dann verwenden Sie die x86-one)
  4. Typ ansicon.exe –i
  5. Öffnen Sie eine neue Befehlszeile

über: https://stackoverflow.com/a/4749307/191902

Auch Wenn Sie eine NVidia-Grafikkarte haben, müssen Sie möglicherweise die Umgebungsvariable "ANSICON_EXC" auf "nvd3d9wrap.dll" setzen.

+0

ansicon -i macht es auf allen meinen cmd.exe Shells funktioniert. Die Python-Befehlszeilenshell interpretiert die Escape-Sequenzen jedoch weiterhin nicht. \ x1b vor gültigen ANSI-Sequenzen wird weiterhin als nach links zeigender Pfeil angezeigt. Muss ich noch etwas tun? –

-3

können Sie den Import nur einen Import verwenden. wie zum Beispiel:

from colorama import init, Fore, Back, Style 

init() 

und Sie können es jetzt versuchen:

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) 
7

ich auf Windows 7 x64 das gleiche Problem hatte, bekam ich endlich die Farben ohne Arbeit etwas Neues nur installieren die durch Hinzufügen Argument convert=True zum Init-Aufruf.

from colorama import init, Fore, Back, Style 

init(convert=True) 

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