set pythons 'sys.stdout' encoding to utf-8 and use surrogateescape error handler.
without this printing a unicode string may raise an error which is a real pain especially since script authors often forget this and print the path of a file for example on export which can make a script fail outright when writing to paths with certain encodings.
This commit is contained in:
@@ -203,6 +203,13 @@ void BPY_python_start(int argc, const char **argv)
|
||||
/* allow to use our own included python */
|
||||
PyC_SetHomePath(BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL));
|
||||
|
||||
/* without this the sys.stdout may be set to 'ascii'
|
||||
* (it is on my system at least), where printing unicode values will raise
|
||||
* an error, this is highly annoying, another stumbling block for devs,
|
||||
* so use a more relaxed error handler and enforce utf-8 since the rest of
|
||||
* blender is utf-8 too - campbell */
|
||||
BLI_setenv("PYTHONIOENCODING", "utf-8:surrogateescape");
|
||||
|
||||
/* Python 3.2 now looks for '2.xx/python/include/python3.2d/pyconfig.h' to
|
||||
* parse from the 'sysconfig' module which is used by 'site',
|
||||
* so for now disable site. alternatively we could copy the file. */
|
||||
|
Reference in New Issue
Block a user