diff --git a/bootstrap/bootstrap.py b/bootstrap/bootstrap.py index 98e7245..5cdc17e 100644 --- a/bootstrap/bootstrap.py +++ b/bootstrap/bootstrap.py @@ -113,7 +113,11 @@ def main(): logger.setLevel(logging.DEBUG) logger.info('Checking if TLJH is already installed...') + python3_version = "python3" if os.path.exists(os.path.join(hub_prefix, 'bin', 'python3')): + # Check if the existing install is under Python3.7 + if os.path.exists(os.path.join(hub_prefix, 'bin', 'python3.7')): + python3_version = "python3.7" logger.info('TLJH already installed, upgrading...') initial_setup = False else: @@ -130,14 +134,15 @@ def main(): run_subprocess(['apt-get', 'update', '--yes']) run_subprocess(['apt-get', 'install', '--yes', - 'python3', - 'python3-venv', + 'python3.7', + 'python3.7-venv', + 'python3.7-dev', 'python3-pip', 'git' ]) logger.info('Installed python & virtual environment') os.makedirs(hub_prefix, exist_ok=True) - run_subprocess(['python3', '-m', 'venv', hub_prefix]) + run_subprocess(['python3.7', '-m', 'venv', hub_prefix]) logger.info('Set up hub virtual environment') if initial_setup: @@ -161,9 +166,9 @@ def main(): logger.info('Starting TLJH installer...') os.execv( - os.path.join(hub_prefix, 'bin', 'python3'), + os.path.join(hub_prefix, 'bin', python3_version), [ - os.path.join(hub_prefix, 'bin', 'python3'), + os.path.join(hub_prefix, 'bin', python3_version), '-m', 'tljh.installer', ] + sys.argv[1:] diff --git a/tljh/installer.py b/tljh/installer.py index c02d198..4fea072 100644 --- a/tljh/installer.py +++ b/tljh/installer.py @@ -237,8 +237,14 @@ def ensure_user_environment(user_requirements_txt_file): Set up user conda environment with required packages """ logger.info("Setting up user environment...") - miniconda_version = '4.5.4' - miniconda_installer_md5 = "a946ea1d0c4a642ddf0c3a26a18bb16d" + if "python3.7" in sys.executable: + conda_version = '4.7.5' + miniconda_version = '4.7.5' + miniconda_installer_md5 = "fc3595e7a66cf159a9d288a212834127" + else: + conda_version = '4.5.8' + miniconda_version = '4.5.4' + miniconda_installer_md5 = "a946ea1d0c4a642ddf0c3a26a18bb16d" if not conda.check_miniconda_version(USER_ENV_PREFIX, miniconda_version): logger.info('Downloading & setting up user environment...') @@ -247,7 +253,7 @@ def ensure_user_environment(user_requirements_txt_file): conda.ensure_conda_packages(USER_ENV_PREFIX, [ # Conda's latest version is on conda much more so than on PyPI. - 'conda==4.5.8' + 'conda==' + conda_version ]) conda.ensure_pip_packages(USER_ENV_PREFIX, [