summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorTom Scogland <scogland1@llnl.gov>2021-03-20 08:01:23 -0700
committerGitHub <noreply@github.com>2021-03-20 08:01:23 -0700
commit48023b2932472f0b91adfa8e91ddd27bc790d0ed (patch)
tree73e36228ec096b2a8eab05f6a2fbb1d169a24677 /bin
parent86fad971659793967c88b9ea2d28b86fbad519ca (diff)
downloadspack-48023b2932472f0b91adfa8e91ddd27bc790d0ed.tar.gz
spack-48023b2932472f0b91adfa8e91ddd27bc790d0ed.tar.bz2
spack-48023b2932472f0b91adfa8e91ddd27bc790d0ed.tar.xz
spack-48023b2932472f0b91adfa8e91ddd27bc790d0ed.zip
notify and error out on more unsupported versions (#22389)
This is to help debug situations like #22383, where python3.4 is accidentally preferred over python2. It will also help on systems where there is no python2 available or some other issue.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/spack23
1 files changed, 14 insertions, 9 deletions
diff --git a/bin/spack b/bin/spack
index 24db0be9b1..14fd037c1e 100755
--- a/bin/spack
+++ b/bin/spack
@@ -29,10 +29,15 @@ from __future__ import print_function
import os
import sys
-if sys.version_info[:2] < (2, 6):
+min_python3 = (3, 5)
+
+if sys.version_info[:2] < (2, 6) or (
+ sys.version_info[:2] >= (3, 0) and sys.version_info[:2] < min_python3
+):
v_info = sys.version_info[:3]
- sys.exit("Spack requires Python 2.6 or higher."
- "This is Python %d.%d.%d." % v_info)
+ msg = "Spack requires Python 2.6, 2.7 or %d.%d or higher " % min_python3
+ msg += "You are running spack with Python %d.%d.%d." % v_info
+ sys.exit(msg)
# Find spack's location and its prefix.
spack_file = os.path.realpath(os.path.expanduser(__file__))
@@ -46,9 +51,9 @@ sys.path.insert(0, spack_lib_path)
spack_external_libs = os.path.join(spack_lib_path, "external")
if sys.version_info[:2] <= (2, 7):
- sys.path.insert(0, os.path.join(spack_external_libs, 'py2'))
+ sys.path.insert(0, os.path.join(spack_external_libs, "py2"))
if sys.version_info[:2] == (2, 6):
- sys.path.insert(0, os.path.join(spack_external_libs, 'py26'))
+ sys.path.insert(0, os.path.join(spack_external_libs, "py26"))
sys.path.insert(0, spack_external_libs)
@@ -58,11 +63,11 @@ sys.path.insert(0, spack_external_libs)
# Briefly: ruamel.yaml produces a .pth file when installed with pip that
# makes the site installed package the preferred one, even though sys.path
# is modified to point to another version of ruamel.yaml.
-if 'ruamel.yaml' in sys.modules:
- del sys.modules['ruamel.yaml']
+if "ruamel.yaml" in sys.modules:
+ del sys.modules["ruamel.yaml"]
-if 'ruamel' in sys.modules:
- del sys.modules['ruamel']
+if "ruamel" in sys.modules:
+ del sys.modules["ruamel"]
import spack.main # noqa