diff options
| author | Lex Neva <lexelby@users.noreply.github.com> | 2020-02-18 20:30:40 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-18 20:30:40 -0500 |
| commit | 8e590d069b25814d28790c9f3c1dcb849acbac97 (patch) | |
| tree | ce16953d18051dab3199e30b77b14784647290a5 /stub.py | |
| parent | 4937721b7db4070c8d4a6027ff7c016fce8c1ee0 (diff) | |
| parent | 3c32246568af85871717a0f3e7d132f9f1a0ea3e (diff) | |
Merge pull request #573 from inkstitch/lneva/stdout-encoding
fixes
Diffstat (limited to 'stub.py')
| -rw-r--r-- | stub.py | 26 |
1 files changed, 15 insertions, 11 deletions
@@ -5,7 +5,6 @@ import subprocess import sys import traceback - # ink/stitch # # stub.py: pyinstaller execution stub @@ -46,20 +45,25 @@ except BaseException: if sys.platform == "win32": import msvcrt - msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) -if sys.stdout.encoding: - stdout = stdout.decode(sys.stdout.encoding) + msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) -sys.stdout.write(stdout) -sys.stdout.flush() +try: + # In Python 3, we need to use sys.stdout.buffer to write binary data to stdout. + sys.stdout.buffer.write(stdout) + sys.stdout.buffer.flush() +except AttributeError: + # Python 2 doesn't have sys.stdout.buffer but we can write binary data to stdout by default. + sys.stdout.write(stdout) + sys.stdout.flush() stderr = stderr.strip() if stderr: - if sys.stderr.encoding: - stderr = stderr.decode(sys.stderr.encoding) - - sys.stderr.write(stderr) - sys.stderr.flush() + try: + sys.stderr.buffer.write(stderr) + sys.stderr.buffer.flush() + except AttributeError: + sys.stderr.write(stderr) + sys.stderr.flush() sys.exit(extension.returncode) |
