2016-04-09 3 views
0

erhalte ich diesen Fehler in den Protokollen während eines yml Testlauf:sys.stderr verloren Ausführung odoo YML Test

close failed in file object destructor: 
sys.excepthook is missing 
lost sys.stderr 

Ich denke, einige Ausnahme vielleicht nicht richtig gehandhabt werden.

+1

Ohne viel mehr Details über Ihren Code, den ich Ihnen nicht genau sagen, aber: dies geschieht, wenn Python Bereinigt Objekte, die beim Herunterfahren des Interpreters noch aktiv waren, und ein Dateiobjekt wird nicht ordnungsgemäß geschlossen. Dies geschieht, nachdem * 'sys.stderr' bereits geschlossen wurde, so dass der Fehler nicht gemeldet werden kann. (Es sollte unmöglich sein, dass 'nahe 'Methoden fehlschlagen, aber leider ist es nicht so.) Um dies zu vermeiden, müssen Sie sicherstellen, dass alle von Ihrem Test geöffneten Dateien geschlossen sind * bevor * der Interpreter heruntergefahren wird; Der einfachste Weg, dies zu tun, ist mit 'mit' Aussagen. – zwol

+0

Es scheint, dass die sys.stderr nicht in dem Kontext verfügbar ist, in dem odoo die YAML-Tests ausführt. Beachten Sie, dass yaml keine Python-Dateien sind, sie können Python-Code im! Python-Tag haben. Dieser Code wird über die Python-Funktion "eval" verwendet. Ich weiß nicht, wie eval mit sys.stderr umgeht – yucer

Antwort

0

Ich habe festgestellt, dass bei Verwendung der Druckfunktion in einem YML-Test passieren.

How to silence "sys.excepthook is missing" error?

Der richtige Weg, es zu protokollieren ist den Logger zu verwenden:

import logging 
_logger = logging.getLogger('TEST') 
_logger.info('log message') 
Verwandte Themen