diff --git a/hpvm/scripts/hpvm_installer.py b/hpvm/scripts/hpvm_installer.py
index c9d94523301e1847c7fd8227700d7542a3db1e06..6460b82c1f0592eeaf389818757807c3f498f0af 100755
--- a/hpvm/scripts/hpvm_installer.py
+++ b/hpvm/scripts/hpvm_installer.py
@@ -14,11 +14,8 @@ LLVM_DIR = f"llvm-{VERSION}.src"
 LLVM_TARBALL = f"{LLVM_DIR}.tar.xz"
 
 ROOT_DIR = (Path(__file__).parent / "..").absolute().resolve()
-TEST_DIR = ROOT_DIR / "test"
-LLVM_LIT = "bin/llvm-lit"  # rel to build dir
-
-MODEL_PARAMS_DIR = TEST_DIR / "dnn_benchmarks/model_params"
 MODEL_PARAMS_TAR = ROOT_DIR / "model_params.tar.gz"
+MODEL_PARAMS_DIR = ROOT_DIR / "test/dnn_benchmarks/model_params"
 MODEL_PARAMS_LINK = "https://databank.illinois.edu/datafiles/o3izd/download"
 
 LINKS = [
@@ -41,6 +38,8 @@ PY_PACKAGES = [
     "projects/keras",
 ]
 
+PYTHON_REQ = ((3, 6), (3, 7))  # This means >= 3.6, < 3.7
+
 
 def parse_args(args=None):
     parser = ArgumentParser(
@@ -186,6 +185,22 @@ def print_args(args):
     print(f"  CMake arguments: {args.cmake_args}")
 
 
+def check_python_version():
+    from sys import version_info, version, executable
+    
+    lowest, highest = PYTHON_REQ
+    if not (lowest <= version_info < highest):
+        lowest_str = ".".join([str(n) for n in lowest])
+        highest_str = ".".join([str(n) for n in highest])
+        version_short_str = ".".join([str(n) for n in version_info])
+        raise RuntimeError(
+            f"You are using Python {version_short_str}, unsupported by HPVM. "
+            f"HPVM requires Python version '{lowest_str} <= version < {highest_str}'.\n"
+            f"(Current Python binary: {executable})\n"
+            f"Detailed version info:\n{version}"
+        )
+
+
 def check_download_llvm_clang():
     if Path("llvm/").is_dir():
         print("Found LLVM directory, not extracting it again.")
@@ -339,6 +354,7 @@ def main():
     # Don't parse args if no args given -- use prompt mode
     args = prompt_args() if len(argv) == 1 else parse_args()
     print_args(args)
+    check_python_version()
     check_download_llvm_clang()
     link_and_patch()
     if not args.no_params: