diff --git a/gramps/gen/plug/_pluginreg.py b/gramps/gen/plug/_pluginreg.py index e2a3e8d8f..05b1f6591 100644 --- a/gramps/gen/plug/_pluginreg.py +++ b/gramps/gen/plug/_pluginreg.py @@ -1094,14 +1094,22 @@ class PluginRegister(object): full_filename = full_filename.encode(glocale.getfilesystemencoding()) local_gettext = glocale.get_addon_translator(full_filename).gettext try: - if win() and not sys.version_info[0] < 3: - exec(compile(open(full_filename, encoding='utf-8').read(), - full_filename, 'exec'), make_environment(_=local_gettext), - {}) + stream = open(full_filename).read() + except UnicodeError as err: + if sys.version_info[0] < 3: + print(_("ERROR: Failed to read file %s, %s") % (full_filename, str(err))) + continue else: - #execfile(full_filename, - exec(compile(open(full_filename).read(), full_filename, - 'exec'), make_environment(_=local_gettext), {}) + try: + stream = open(full_filename, encoding = 'utf-8').read() + except ValueError as err: + print(_("ERROR: Failed to read file %s, %s") % (full_filename, str(err))) + continue + try: + #execfile(full_filename, + exec(compile(stream, full_filename, 'exec'), + make_environment(_=local_gettext), + {}) except ValueError as msg: print(_('ERROR: Failed reading plugin registration %(filename)s') % \ {'filename' : filename}) diff --git a/gramps/gen/utils/configmanager.py b/gramps/gen/utils/configmanager.py index 94073aaf3..acae08628 100644 --- a/gramps/gen/utils/configmanager.py +++ b/gramps/gen/utils/configmanager.py @@ -339,10 +339,10 @@ class ConfigManager(object): except OSError as exp: if exp.errno != errno.EEXIST: raise - if win() and not sys.version_info[0] < 3: - key_file = open(filename, "w", encoding='utf-8') - else: + if sys.version_info[0] < 3: key_file = open(filename, "w") + else: + key_file = open(filename, "w", encoding="utf-8") key_file.write(";; Gramps key file\n") key_file.write((";; Automatically created at %s" % time.strftime("%Y/%m/%d %H:%M:%S")) + "\n\n")