summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/dist/dist.tex4
-rw-r--r--Lib/distutils/command/build.py5
-rw-r--r--Lib/distutils/command/build_scripts.py7
-rw-r--r--Misc/NEWS3
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" %
diff --git a/Misc/NEWS b/Misc/NEWS
index be445c9..9ce8c2d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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.