python - notebook - use matplotlib with pycharm




PyCharm couleurs de sortie de journalisation (4)

J'utilise PyCharm pour développer une application GAE sous Mac OS X. Existe-t-il un moyen d'afficher les couleurs dans la console d'exécution de PyCharm?

J'ai mis un handler pour produire des couleurs au format ansi. Ensuite, j'ai ajouté le gestionnaire:

LOG = logging.getLogger()
LOG.setLevel(logging.DEBUG)
for handler in LOG.handlers:
    LOG.removeHandler(handler)

LOG.addHandler(ColorHandler())

LOG.info('hello!')
LOG.warning('hello!')
LOG.debug('hello!')
LOG.error('hello!')

Mais la couleur est la même.

MODIFIER:

Une réponse du suivi des problèmes JetBrains: modifiez la ligne 55 de l'extrait de code de sys.stderr à sys.stdout. Le flux de stderr est toujours coloré en rouge pendant que stdout ne le fait pas.

Maintenant, les couleurs sont correctement affichées.


À partir d'au moins PyCharm 2017.2, vous pouvez le faire en activant:

Courir | Modifier les configurations ... | Configuration | Emuler le terminal dans la console de sortie


Ce qui m'a résolu (sur PyCharm 2017.2) était d'aller dans Preferences -> Editor -> Color Scheme -> Console Colors et changer la couleur de la Console -> Error output . Bien sûr, cela change également la couleur de l'erreur mais au moins vous ne voyez pas tout le temps le rouge ...


J'ai découvert la solution suivante. Apparemment, Pycharm redirige sys.stdout. A partir de la documentation du module sys :

sys.__stdin__
sys.__stdout__
sys.__stderr__

Ces objets contiennent les valeurs d'origine de stdin, stderr et stdout au début du programme. Ils sont utilisés lors de la finalisation et pourraient être utiles pour imprimer sur le flux standard réel, peu importe si l'objet sys.std * a été redirigé.

Il peut également être utilisé pour restaurer les fichiers réels sur des objets de fichiers de travail connus au cas où ils seraient remplacés par un objet cassé. Toutefois, la méthode préférée consiste à enregistrer explicitement le flux précédent avant de le remplacer et à restaurer l'objet enregistré.

Par conséquent, pour résoudre ce problème, vous pouvez rediriger la sortie vers sys.__stdout__ . Exemple de configuration à partir de mon log_config.yml:

console:
  class: logging.StreamHandler
  level: DEBUG
  stream: "ext://sys.__stdout__"
  formatter: colorFormatter







pycharm