diff --git a/mondrian/__init__.py b/mondrian/__init__.py index c580c33..aec3f9c 100644 --- a/mondrian/__init__.py +++ b/mondrian/__init__.py @@ -20,9 +20,11 @@ # Patch standard output/error if it's not supporting unicode # See: https://stackoverflow.com/questions/27347772/print-unicode-string-in-python-regardless-of-environment -if sys.stdout.encoding is None or sys.stdout.encoding == "ANSI_X3.4-1968": - sys.stdout = codecs.getwriter("UTF-8")(sys.stdout.buffer, errors="replace") - sys.stderr = codecs.getwriter("UTF-8")(sys.stderr.buffer, errors="replace") +if getattr(sys.stdout, "encoding", None) is None or sys.stdout.encoding == "ANSI_X3.4-1968": + if hasattr(sys.stdout, "buffer"): + sys.stdout = codecs.getwriter("UTF-8")(sys.stdout.buffer, errors="replace") + if hasattr(sys.stderr, "buffer"): + sys.stderr = codecs.getwriter("UTF-8")(sys.stderr.buffer, errors="replace") def setup_excepthook():