diff options
-rw-r--r-- | Doc/dist/dist.tex | 4 | ||||
-rw-r--r-- | Lib/distutils/command/build.py | 5 | ||||
-rw-r--r-- | Lib/distutils/command/build_scripts.py | 7 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 16 insertions, 3 deletions
diff --git a/Doc/dist/dist.tex b/Doc/dist/dist.tex index b09f1e0..b590b31 100644 --- a/Doc/dist/dist.tex +++ b/Doc/dist/dist.tex @@ -640,7 +640,9 @@ started from the command line. Scripts don't require Distutils to do anything very complicated. The only clever feature is that if the first line of the script starts with \code{\#!} and contains the word ``python'', the Distutils will adjust the first line to refer to the -current interpreter location. +current interpreter location. By default, it is replaced with the +current interpreter location. The '--executable=/-e' switch will +allow the interpreter path to be explicitly overridden. The \option{scripts} option simply is a list of files to be handled in this way. From the PyXML setup script: diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py index 7823154..e6b3991 100644 --- a/Lib/distutils/command/build.py +++ b/Lib/distutils/command/build.py @@ -40,6 +40,8 @@ class build (Command): "compile extensions and libraries with debugging information"), ('force', 'f', "forcibly build everything (ignore file timestamps)"), + ('executable=', 'e', + "specify final destination interpreter path (build.py)"), ] boolean_options = ['debug', 'force'] @@ -61,6 +63,7 @@ class build (Command): self.compiler = None self.debug = None self.force = 0 + self.executable = None def finalize_options (self): @@ -93,6 +96,8 @@ class build (Command): self.build_scripts = os.path.join(self.build_base, 'scripts-' + sys.version[0:3]) + if self.executable is None: + self.executable = os.path.normpath(sys.executable) # finalize_options () diff --git a/Lib/distutils/command/build_scripts.py b/Lib/distutils/command/build_scripts.py index e0fcc23..fb73719 100644 --- a/Lib/distutils/command/build_scripts.py +++ b/Lib/distutils/command/build_scripts.py @@ -24,6 +24,7 @@ class build_scripts (Command): user_options = [ ('build-dir=', 'd', "directory to \"build\" (copy) to"), ('force', 'f', "forcibly build everything (ignore file timestamps"), + ('executable=', 'e', "specify final destination interpreter path"), ] boolean_options = ['force'] @@ -33,12 +34,14 @@ class build_scripts (Command): self.build_dir = None self.scripts = None self.force = None + self.executable = None self.outfiles = None def finalize_options (self): self.set_undefined_options('build', ('build_scripts', 'build_dir'), - ('force', 'force')) + ('force', 'force'), + ('executable', 'executable')) self.scripts = self.distribution.scripts def get_source_files(self): @@ -95,7 +98,7 @@ class build_scripts (Command): outf = open(outfile, "w") if not sysconfig.python_build: outf.write("#!%s%s\n" % - (os.path.normpath(sys.executable), + (self.executable, post_interp)) else: outf.write("#!%s%s\n" % @@ -57,6 +57,9 @@ Extension modules Library ------- +- distutils build/build_scripts now has an -e option to specify the + path to the Python interpreter for installed scripts. + - PEP 292 classes Template and SafeTemplate are added to the string module. - tarfile now generates GNU tar files by default. |