diff options
author | Felix Krull <f_krull@gmx.de> | 2016-06-26 01:48:30 +0200 |
---|---|---|
committer | Felix Krull <f_krull@gmx.de> | 2016-06-26 01:48:30 +0200 |
commit | 3132833570c90d52f6c2a422506732e82d772cdd (patch) | |
tree | d0b28765bd0f7fc9302e679353eeae67859cee8f /setuptools/command/install_scripts.py | |
parent | 6f79ca2b726b2b92d007d09fb855f19ede5a1921 (diff) | |
download | external_python_setuptools-3132833570c90d52f6c2a422506732e82d772cdd.tar.gz external_python_setuptools-3132833570c90d52f6c2a422506732e82d772cdd.tar.bz2 external_python_setuptools-3132833570c90d52f6c2a422506732e82d772cdd.zip |
Ensure shebang lines are correctly quoted if sys.executable contains spaces.
Fixes issue #398. This only special-cases sys.executable; if the --executable
parameter is used, paths with spaces have to be quoted there explicitly. While
this change also applies to Unix platforms, if sys.executable contains spaces
on Unix, any shebang lines created with it aren't going to work either way,
whether they are quoted or not.
Diffstat (limited to 'setuptools/command/install_scripts.py')
-rwxr-xr-x | setuptools/command/install_scripts.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/setuptools/command/install_scripts.py b/setuptools/command/install_scripts.py index be66cb22..16234273 100755 --- a/setuptools/command/install_scripts.py +++ b/setuptools/command/install_scripts.py @@ -1,6 +1,7 @@ from distutils import log import distutils.command.install_scripts as orig import os +import sys from pkg_resources import Distribution, PathMetadata, ensure_directory @@ -37,6 +38,10 @@ class install_scripts(orig.install_scripts): if is_wininst: exec_param = "python.exe" writer = ei.WindowsScriptWriter + if exec_param == sys.executable: + # In case the path to the Python executable contains a space, wrap + # it so it's not split up. + exec_param = [exec_param] # resolve the writer to the environment writer = writer.best() cmd = writer.command_spec_class.best().from_param(exec_param) |