私はいくつかのコードをクロスプラットフォームで作っています。つまり、Windowsの問題と戦っています。私は現在、端末に表示する色を取得することに問題があります。ansiをwindowsに印刷するcmdはIPythonでは動作しますが、他の場所では動作しません。どうして?
ほとんどの場合、色で作業するためにピグメントを使用します。私が入力した場合:私はIPythonを開き、それが動作する同じコマンドを入力した場合、しかし
[31;01mhi[39;49;00m
:
python -c "import pygments.console; print(pygments.console.colorize('red', 'hi'))"
Win32コンソールで
(またはそのことについてのgit bashの)私はこれを取得
$ ipython
Python 3.6.3 |Anaconda, Inc.| (default, Nov 8 2017, 15:10:56) [MSC v.1900 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import pygments.console
In [2]: print(pygments.console.colorize('red', 'hi'))
hi
In [3]:
メモこの例では、hiが赤で印刷されています。
これはどのように機能しますか? IPythonは何かを巧妙にやっていて、テキストがstdoutに書き込まれるときにansiシーケンスをcoloramaのWindowsコードに置き換えますか?あるいは、IPythonは、ansiを動作させるために端末に何かをしていますか?
どちらの方法でも、私はpygmentsの色付け関数をWindows環境でうまく動作させる方法はありますか?