From dc9b1ea02eba907ae48cea682a49c5df34d0e19e Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 30 Jun 2011 15:40:22 +0200 Subject: [PATCH] Issue #12451: distutils now opens the setup script in binary mode to read the encoding cookie, instead of opening it in UTF-8. --- Lib/distutils/core.py | 8 +++----- Misc/NEWS | 3 +++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Lib/distutils/core.py b/Lib/distutils/core.py index fd2a43d7d28..c0a04de3af0 100644 --- a/Lib/distutils/core.py +++ b/Lib/distutils/core.py @@ -8,7 +8,8 @@ really defined in distutils.dist and distutils.cmd. __revision__ = "$Id$" -import sys, os +import os +import sys from distutils.debug import DEBUG from distutils.errors import * @@ -215,11 +216,8 @@ def run_setup (script_name, script_args=None, stop_after="run"): sys.argv[0] = script_name if script_args is not None: sys.argv[1:] = script_args - f = open(script_name) - try: + with open(script_name, 'rb') as f: exec(f.read(), g, l) - finally: - f.close() finally: sys.argv = save_argv _setup_stop_after = None diff --git a/Misc/NEWS b/Misc/NEWS index 51a7d57a3e8..9419f67b246 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -25,6 +25,9 @@ Core and Builtins Library ------- +- Issue #12451: distutils now opens the setup script in binary mode to read the + encoding cookie, instead of opening it in UTF-8. + - Issue #9516: On Mac OS X, change Distutils to no longer globally attempt to check or set the MACOSX_DEPLOYMENT_TARGET environment variable for the interpreter process. This could cause failures in non-Distutils subprocesses