On 11 Jan., 11:37, Giovanni Bajo <[email protected]> wrote: > It is well possible that the console/stdout is configured with a > different encoding within PyInstaller rather than the interpreter > version. For instance, PyInstaller does not use the computer's site.py > module, so if the encoding for stdout is set there, there can be a > different behaviour.
Yes, good hint, thanks. For stdout there is a simple (not very clean) workaround (http://stackoverflow.com/questions/492483/setting-the- correct-encoding-when-piping-stdout-in-python): --- import sys import codecs sys.stdout = codecs.getwriter('utf8')(sys.stdout) --- Anyway, the application in which I first discovered this error still threw the exception because somewhere in library code - I wasn't able to find the place - there must be some operation which does not properly encode its input. Obviously sys.stdout is just one of the writers that uses the wrong encoding when compiled with pyInstaller. > I don't know off the top of my head how Python decides which encoding > must be used for stdout on Windows (or any other platform), nor how (and > if) it can be programatically changed from within an application. If you > want to pursue this bug, you will have to find out how this whole thing > works, and then we can decided whether or how to fix this issue. I finally got my app working after setting the env variable PYTHONIOENCODING to "utf_8" at both build time and execution time (http://daveagp.wordpress.com/2010/10/26/what-a-character/). The strange thing is that I failed to re-produce the error in an environment without PYTHONIOENCODING - even with a completely empty build and dist dir :-o I suggest to somehow manage PYTHONIOENCODING in the Makespec/Build process. Stefan -- You received this message because you are subscribed to the Google Groups "PyInstaller" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pyinstaller?hl=en.
