Ver código fonte

wxGUI: fix debug mode with Python 3

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@73242 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 6 anos atrás
pai
commit
1167e4837e
1 arquivos alterados com 7 adições e 2 exclusões
  1. 7 2
      gui/wxpython/core/gconsole.py

+ 7 - 2
gui/wxpython/core/gconsole.py

@@ -402,8 +402,13 @@ class GConsole(wx.EvtHandler):
         else:
             enc = locale.getdefaultlocale()[1]
             if enc:
-                sys.stdout = codecs.getwriter(enc)(sys.__stdout__)
-                sys.stderr = codecs.getwriter(enc)(sys.__stderr__)
+                if sys.version_info.major == 2:
+                    sys.stdout = codecs.getwriter(enc)(sys.__stdout__)
+                    sys.stderr = codecs.getwriter(enc)(sys.__stderr__)
+                else:
+                    # https://stackoverflow.com/questions/4374455/how-to-set-sys-stdout-encoding-in-python-3
+                    sys.stdout = codecs.getwriter(enc)(sys.__stdout__.detach())
+                    sys.stderr = codecs.getwriter(enc)(sys.__stderr__.detach())
             else:
                 sys.stdout = sys.__stdout__
                 sys.stderr = sys.__stderr__