If a pre-built SCons package is not available for your system,
and installing using pip
is not suitable,
then you can still easily build and install SCons using the native
Python setuptools
package.
The first step is to download either the
scons-4.3.0.tar.gz
or scons-4.3.0.zip
,
which are available from the SCons download page at
https://scons.org/pages/download.html.
Unpack the archive you downloaded,
using a utility like tar
on Linux or UNIX,
or WinZip on Windows.
This will create a directory called
scons-4.3.0
,
usually in your local directory.
Then change your working directory to that directory
and install SCons by executing the following commands:
#cd scons-4.3.0
#python setup.py install
This will build SCons,
install the scons script
in the python which is used to run the setup.py's scripts directory
(/usr/local/bin
or
C:\Python37\Scripts
),
and will install the SCons build engine
in the corresponding library directory for the python used
(/usr/local/lib/scons
or
C:\Python37\scons
).
Because these are system directories,
you may need root (on Linux or UNIX) or Administrator (on Windows)
privileges to install SCons like this.
The SCons setup.py
script
has some extensions that support
easy installation of multiple versions of SCons
in side-by-side locations.
This makes it easier to download and
experiment with different versions of SCons
before moving your official build process to a new version,
for example.
To install SCons in a version-specific location,
add the --version-lib
option
when you call setup.py
:
# python setup.py install --version-lib
This will install the SCons build engine
in the
/usr/lib/scons-4.3.0
or
C:\Python27\scons-4.3.0
directory, for example.
If you use the --version-lib
option
the first time you install SCons,
you do not need to specify it each time you install
a new version.
The SCons setup.py
script
will detect the version-specific directory name(s)
and assume you want to install all versions
in version-specific directories.
You can override that assumption in the future
by explicitly specifying the --standalone-lib
option.
You can install SCons in locations other than
the default by specifying the --prefix=
option:
# python setup.py install --prefix=/opt/scons
This would
install the scons script in
/opt/scons/bin
and the build engine in
/opt/scons/lib/scons
,
Note that you can specify both the --prefix=
and the --version-lib
options
at the same type,
in which case setup.py
will install the build engine
in a version-specific directory
relative to the specified prefix.
Adding --version-lib
to the
above example would install the build engine in
/opt/scons/lib/scons-4.3.0
.
If you don't have the right privileges to install SCons
in a system location,
simply use the --prefix=
option
to install it in a location of your choosing.
For example,
to install SCons in appropriate locations
relative to the user's $HOME
directory,
the scons script in
$HOME/bin
and the build engine in
$HOME/lib/scons
,
simply type:
$ python setup.py install --prefix=$HOME
You may, of course, specify any other location you prefer,
and may use the --version-lib
option
if you would like to install version-specific directories
relative to the specified prefix.
This can also be used to experiment with a newer
version of SCons than the one installed
in your system locations.
Of course, the location in which you install the
newer version of the scons script
($HOME/bin
in the above example)
must be configured in your PATH
variable
before the directory containing
the system-installed version
of the scons script.