Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PyCharm上のConsole画面で色が正しく表示されない #823

Closed
ryo-n opened this issue Sep 11, 2020 · 3 comments
Closed

PyCharm上のConsole画面で色が正しく表示されない #823

ryo-n opened this issue Sep 11, 2020 · 3 comments

Comments

@ryo-n
Copy link
Contributor

ryo-n commented Sep 11, 2020

Description

PyCharm上のConsole画面で色が正しく表示されません。
10.1.1では"INFO"や"SUCCESS"といった文字がANSIカラーで出力されていたのですが、
10.1.3からANSIカラーで出力されず他の文字と同じ色で表示されるようになってしまいました。

log_formatter.pyでのcolorama.init()を下記に変更したら手元環境では正しい色が表示されることを確認しました。

colorama.init(strip=False)

参考

環境

  • online-judge-tools 10.1.3 (+ online-judge-api-client 10.3.3)
  • macOS High Sierra Version 10.13.6
  • PyCharm CE 2020.2.1

Other notes

  • Will you try to create a pull request?
    • no
@kmyk
Copy link
Member

kmyk commented Sep 11, 2020

@ryo-n Python と colorama のバージョンは何を使っていますか? $ python3 --version$ pip3 show colorama の結果を教えてほしい

@kmyk
Copy link
Member

kmyk commented Sep 11, 2020

2015 年の tartley/colorama#79 は open のままだけど、2016 年の "Can not display color in PyCharm using default init()" tartley/colorama#107 と 2018 年ので ”Add support for PyCharm” tartley/colorama#163 を見る限りいま動いてると思うんだよね。本当に動いてないなら colorama 本体側を修正すべきに見える


@ryo-n 追加で質問です

@ryo-n
Copy link
Contributor Author

ryo-n commented Sep 11, 2020

すみません、PyCharm上のConsole画面という説明があまり良くなかったです。
PyCharmでExternal Toolでojを呼んだ時に実行されるConsole画面で色が正しく表示されないという説明が適切でした。

下記質問に回答していきます。

pipenv環境なのですが下記のようになっています。

$ pipenv run python --version
Python 3.8.2
$ pipenv run pip show colorama
Name: colorama
Version: 0.4.3
Summary: Cross-platform colored terminal text.
Home-page: https://github.com/tartley/colorama
Author: Jonathan Hartley
Author-email: tartley@tartley.com
License: BSD
Location: /Users/ryo/.local/share/virtualenvs/atcoder-9I-f247q/lib/python3.8/site-packages
Requires:
Required-by: online-judge-tools

PyCharm で $ python3 -c 'import colorama; colorama.init(); print(colorama.Fore.RED + "TEST")' を実行すると色は付きますか?

PyCharm上で実行すると正しく色は付くのですが、
上記を書いたPythonスクリプトをPyCharmのExternal Toolで実行すると色は表示されません。

tartley/colorama#107 に書いてあるふたつのコードを試すとどうなりますか?

PyCharm上で実行すると'Hi! You are using PyCharm'というメッセージがでて色は付くのですが、
上記を書いたPythonスクリプトをPyCharmのExternal Toolsで実行すると上記メッセージは出ず色は付きません

環境変数 TERM と PYCHARM_HOSTED の値はどうなっていますか?

Pycharm上で実行すると、PYCHARM_HOSTEDの値が1となっていて、TERMの値は無さそうです。
PyCharmのExternal Toolsで環境変数を確認するとTERMにはdumbという値が入っていますが、PYCHARM_HOSTEDという値が入っていないようです。

上記から、PYCHARM_HOSTEDという環境変数がExternal Tools実行時には渡されていなさそうなので、ojを呼ぶwrapperスクリプトでPYCHARM_HOSTEDを設定したところ正しく表示されました。

ojというよりはPyCham側の問題のようなので、この課題はcloseします。調査していただきありがとうございます。

@ryo-n ryo-n closed this as completed Sep 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants