浏览代码

Avoid setting default streams that don't support bytestrings. Fixes #687

Jelmer Vernooij 6 年之前
父节点
当前提交
67e53e9cea
共有 1 个文件被更改,包括 8 次插入6 次删除
  1. 8 6
      dulwich/porcelain.py

+ 8 - 6
dulwich/porcelain.py

@@ -154,12 +154,14 @@ class NoneStream(RawIOBase):
         return None
 
 
-default_bytes_out_stream = getattr(
-        sys.stdout, 'buffer', sys.stdout
-    ) or NoneStream()
-default_bytes_err_stream = getattr(
-        sys.stderr, 'buffer', sys.stderr
-    ) or NoneStream()
+if sys.version_info[0] == 2:
+    default_bytes_out_stream = sys.stdout or NoneStream()
+    default_bytes_err_stream = sys.stderr or NoneStream()
+else:
+    default_bytes_out_stream = (
+        getattr(sys.stdout, 'buffer', None) or NoneStream())
+    default_bytes_err_stream = (
+        getattr(sys.stderr, 'buffer', None) or NoneStream())
 
 
 DEFAULT_ENCODING = 'utf-8'