diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index a808f6d603..7aaa4b1626 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -26,10 +26,12 @@ from dotenv import load_dotenv from InvenTree.config import get_boolean_setting, get_custom_file, get_setting from InvenTree.sentry import default_sentry_dsn, init_sentry -from InvenTree.version import inventreeApiVersion +from InvenTree.version import checkMinPythonVersion, inventreeApiVersion from . import config +checkMinPythonVersion() + INVENTREE_NEWS_URL = 'https://inventree.org/news/feed.atom' # Determine if we are running in "test" mode e.g. "manage.py test" diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index c8d2f4216b..4b7b0efe49 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -7,6 +7,7 @@ import os import pathlib import platform import re +import sys from datetime import datetime as dt from datetime import timedelta as td @@ -28,6 +29,27 @@ except (NotGitRepository, FileNotFoundError): main_commit = None +def checkMinPythonVersion(): + """Check that the Python version is at least 3.9""" + + version = sys.version.split(" ")[0] + docs = "https://docs.inventree.org/en/stable/start/intro/#python-requirements" + + msg = f""" + InvenTree requires Python 3.9 or above - you are running version {version}. + - Refer to the InvenTree documentation for more information: + - {docs} + """ + + if sys.version_info.major < 3: + raise RuntimeError(msg) + + if sys.version_info.major == 3 and sys.version_info.minor < 9: + raise RuntimeError(msg) + + print(f"Python version {version} - {sys.executable}") + + def inventreeInstanceName(): """Returns the InstanceName settings for the current database.""" import common.models