Colorama for Python, Не возвращает цветные линии печати в Windows - PullRequest
12 голосов
/ 24 марта 2012

Я установил colorama для python.Я импортировал модуль следующим образом:

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

print Fore.RED + "My Text is Red"

, и он возвращает символы ANSI ....

esc[31mMy Text is Red

Это не то, что я ожидал.Я делаю что-то не так.

Спасибо.

Ответы [ 6 ]

14 голосов
/ 04 ноября 2016

У меня была такая же проблема в Windows 7 x64, я, наконец, получил работу цветов, не устанавливая ничего нового, просто добавив аргумент convert=True в вызов init.

from colorama import init, Fore, Back, Style

init(convert=True)

print(Fore.RED + 'some red text')
5 голосов
/ 09 февраля 2013

Мне никогда не удавалось заставить работать цвета в Windows cmd.exe без исправления с помощью Ansicon. После исправления цветовые коды ANSI будут работать без необходимости использовать что-то вроде колорамы (что мне тоже не помогло).

Для исправления cmd.exe с помощью Ansicon выполните следующие действия:

  1. Загрузите Ansicon из https://github.com/adoxa/ansicon/downloads и разархивируйте его в каталог без пробелов
  2. Используйте командную строку и перейдите к разархивированному файлу.
  3. CD в каталог x64 (если у вас нет 32-битного компьютера, используйте x86)
  4. Тип ansicon.exe –i
  5. Открыть новую команду cmd

через: https://stackoverflow.com/a/4749307/191902

Кроме того, если у вас есть видеокарта NVidia, вам может потребоваться установить переменную среды «ANSICON_EXC» в «nvd3d9wrap.dll».

2 голосов
/ 30 ноября 2018

Я знаю, что опаздываю, но, надеюсь, это поможет любому, кто все еще ищет ответ.

Заявление от Документация Colorama по PyPI :

Colorama может успешно использоваться в сочетании с существующими библиотеками ANSI, такими как Termcolor

from colorama import init
from termcolor import colored

# use Colorama to make Termcolor work on Windows too
init()

# then use Termcolor for all colored text output
print(colored('Hello, World!', 'green', 'on_red'))

Это сработало для меня в Anaconda Prompt (по сути cmd.exe) в 64-битной Windows 10.

По-видимому, нативные последовательности Colorama по ANSI по какой-то причине не работают.Внешняя библиотека ANSI (т. Е. Termcolor) сделала свое дело для меня.

0 голосов
/ 01 августа 2014

вы можете использовать импорт только один импорт. такие как:

from colorama import init, Fore, Back, Style

init()

и вы можете попробовать это сейчас:

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)
0 голосов
/ 05 сентября 2012

Попробуйте следующее:

import colorama

colorama.init()
print colorama.Fore.GREEN + " Hey, im green! "
0 голосов
/ 07 мая 2012

Это нормально, потому что у вас нет ANSI в Windows.

Попробуйте что-то вроде tendo.colorer , и это позволит раскрасить все платформы.: tendero.colorer добавляет раскраску в журналы, но я уверен, что вы поймете, как использовать ее для других целей.Если я не ошибаюсь, просто импортируя его перед вашим кодом, это решит проблему.

...