diff options
| -rwxr-xr-x | EasyInstall.txt | 4 | ||||
| -rwxr-xr-x | setuptools/command/develop.py | 2 | ||||
| -rwxr-xr-x | setuptools/command/easy_install.py | 22 |
3 files changed, 16 insertions, 12 deletions
diff --git a/EasyInstall.txt b/EasyInstall.txt index a404069b..f83330d4 100755 --- a/EasyInstall.txt +++ b/EasyInstall.txt @@ -1200,6 +1200,10 @@ Release Notes/Change History * A writable installation directory on ``sys.path`` is no longer required to download and extract a source distribution using ``--editable``. + * Generated scripts now use ``-x`` on the ``#!`` line when ``sys.executable`` + contains non-ASCII characters, to prevent deprecation warnings about an + unspecified encoding when the script is run. + 0.6c1 * EasyInstall now includes setuptools version information in the ``User-Agent`` string sent to websites it visits. diff --git a/setuptools/command/develop.py b/setuptools/command/develop.py index 0c20dd8d..fc35ad85 100755 --- a/setuptools/command/develop.py +++ b/setuptools/command/develop.py @@ -3,7 +3,7 @@ from distutils.util import convert_path from pkg_resources import Distribution, PathMetadata, normalize_path from distutils import log from distutils.errors import * -import sys, os +import sys, os, setuptools class develop(easy_install): """Set up package for development""" diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py index 1696b631..0514adb1 100755 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py @@ -1408,7 +1408,17 @@ def get_script_header(script_text, executable=sys_executable): options = match.group(1) or '' if options: options = ' '+options - return "#!%(executable)s%(options)s\n" % locals() + hdr = "#!%(executable)s%(options)s\n" % locals() + if unicode(hdr,'ascii','ignore').encode('ascii') != hdr: + # Non-ascii path to sys.executable, use -x to prevent warnings + if options: + if options.strip().startswith('-'): + options = ' -x'+options.strip()[1:] + # else: punt, we can't do it, let the warning happen anyway + else: + options = ' -x' + hdr = "#!%(executable)s%(options)s\n" % locals() + return hdr def auto_chmod(func, arg, exc): if func is os.remove and os.name=='nt': @@ -1442,7 +1452,6 @@ def is_python(text, filename='<string>'): else: return True - def is_python_script(script_text, filename): """Is this text, as a whole, a Python script? (as opposed to shell/bat/etc. """ @@ -1465,15 +1474,6 @@ def is_python_script(script_text, filename): return False # Not any Python I can recognize - - - - - - - - - def get_script_args(dist, executable=sys_executable): """Yield write_script() argument tuples for a distribution's entrypoints""" spec = str(dist.as_requirement()) |
