From 3c6675ba988e513a334e13b96572f657c1c7410d Mon Sep 17 00:00:00 2001 From: Senko Rasic Date: Sat, 25 May 2024 12:46:39 +0200 Subject: [PATCH] show a more useful error message if python environment is not (completely) set up --- main.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index d524d03c..e22dcfd9 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,29 @@ #!/usr/bin/env python -from sys import exit -from core.cli.main import run_pythagora +import os.path +import sys -exit(run_pythagora()) +try: + from core.cli.main import run_pythagora +except ImportError: + pythagora_root = os.path.dirname(os.path.dirname(__file__)) + venv_path = os.path.join(pythagora_root, "venv") + requirements_path = os.path.join(pythagora_root, "requirements.txt") + if sys.prefix == sys.base_prefix: + venv_python_path = os.path.join(venv_path, "scripts" if sys.platform == "win32" else "bin", "python") + print("Python environment for Pythagora is not set up.", file=sys.stderr) + print(f"Please create Python virtual environment: {sys.executable} -m venv {venv_path}", file=sys.stderr) + print( + f"Then install the required dependencies with: {venv_python_path} -m pip install -r {requirements_path}", + file=sys.stderr, + ) + else: + print("Python environment for Pythagora is not completely set up.", file=sys.stderr) + print( + f"Please run `{sys.executable} -m pip install -r {requirements_path}` to finish Python setup, and rerun Pythagora.", + file=sys.stderr, + ) + sys.exit(255) + +sys.exit(run_pythagora())