2012-03-24 10 views
8

私はPython用のcoloramaをインストールしました。次のように私は、モジュールをインポートした:Python用のColorama、Windows上で色付きの印刷行を返さない

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

print Fore.RED + "My Text is Red" 

をし、これは私が期待したものisn`t

esc[31mMy Text is Red 

.... ANSIのcharatersを返します。私は間違ったことをしていますか?

ありがとうございました。

+1

実行しているオペレーティングシステムはどれですか。 –

+0

私はWindows 7 64ビットを実行しています.... – Mike

+3

これはコマンドプロンプトまたは一部のIDEで実行していますか?コマンドプロンプトでは動作しますが、IDLEやEclipse Pydevでは動作しません。 – Junuxx

答えて

0

WindowsにはANSIがないため、これは正常です。

tendo.colorerのようにお試しください。これにより、すべてのプラットフォームでの色付けが可能になります。

注:tendo.colorerはログに色付けを追加しますが、他のものに使用する方法については理解しているはずです。コードの前にインポートするだけで間違っていなければ、問題は解決します。

+1

あなたはその点を見逃しています。 OPは、彼が既に[colorama](http://pypi.python.org/pypi/colorama)ライブラリを持っていることを明示しています。 – Junuxx

+0

@Junuxx、そうかもしれませんが、OPがやりたいことがうまくいかない場合は、代替案を提案する必要があります。私はWindowsで動作しないcoloramaでこの問題を抱えていました。 tendo.colrモジュールが私のために働いた。 URLは現在https://github.com/pycontribs/tendo/blob/master/tendo/colorer.py –

-6

は、以下のことを試してみてください。

import colorama 

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

ですが、これは質問の例とはまったく異なり、表面的に異なるインポート構文を使用しています。 – Junuxx

+0

質問と同じことです。 –

5

私はAnsiconでそれにパッチを適用せずにWindowsのcmd.exeでの作業の色を取得し成功を収めていたことがありません。パッチ適用後、ANSIカラーコードはcoloramaのようなものを使わなくても動作します(どちらも私にとってはうまくいきませんでした)。 https://github.com/adoxa/ansicon/downloadsから

  1. ダウンロードAnsiconをスペースなし
  2. 利用CMDプロンプトでディレクトリに解凍し、あなたがそれを解凍した場所に移動します。

    は、次の操作を行い、AnsiconでCMD.EXEにパッチを適用するには。 x64のディレクトリに

  3. CD
  4. タイプansicon.exe –i
  5. オープン(あなたは32ビットマシンを持っていない限り、x86のいずれかを使用)を介して新しいCMD
プロンプト

:またhttps://stackoverflow.com/a/4749307/191902

、 NVidiaグラフィックスカードをお持ちの場合は、環境変数 "ANSICON_EXC"を "nvd3d9wrap.dll"に設定する必要があります。

+0

ansicon -iは、すべてのcmd.exeシェルで動作します。しかし、Pythonのコマンドラインシェルはエスケープシーケンスを解釈しません。有効なANSIシーケンスの前の\ x1bは、左向きの矢印として表示されます。私がしなければならないことは他にありますか? –

-3

インポートを1回だけ使用できます。

from colorama import init, Fore, Back, Style 

init() 

、あなたは今、それを試すことができます:のような私は、Windows 7のx64上で、これと同じ問題があった

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

、私は最終的に色を追加するだけで新しい何かをインストールすることなく取り組みました引数convert=Trueをinit呼び出しに追加します。

from colorama import init, Fore, Back, Style 

init(convert=True) 

print(Fore.RED + 'some red text') 
関連する問題