From 1ad9f7d1bf917a18f367ada9f5331522dfbe626a Mon Sep 17 00:00:00 2001 From: Yifan Zhao <yifanz16@illinois.edu> Date: Sun, 4 Apr 2021 22:40:59 -0500 Subject: [PATCH] Installer checks for Python version by checking the python it's running on --- hpvm/scripts/hpvm_installer.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/hpvm/scripts/hpvm_installer.py b/hpvm/scripts/hpvm_installer.py index c9d9452330..6460b82c1f 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: -- GitLab