|
|
@@ -3,22 +3,26 @@
|
|
|
# This is a helper script for detecting Python executables in the PATH. It is intended to be used for determining
|
|
|
# which Python should be used with idf_tools.py for installing tools and exporting environment variables.
|
|
|
#
|
|
|
-# 1. The script will set variable ESP_PYTHON to "python" if it is of version 3.
|
|
|
-# 2. Otherwise, "python3" will be exported if it exists.
|
|
|
-# 3. The script will fall-back to "python" as the last resort and fail if it doesn't exist.
|
|
|
+# 1. The script is looking for python version same or greater than minimal required version on path
|
|
|
+# 2. If required version of python is found it is assigned to environmental variable `ESP_PYTHON`
|
|
|
+# 3. If required version of python is not found, script will fail
|
|
|
|
|
|
-ESP_PYTHON=python
|
|
|
+OLDEST_PYTHON_SUPPORTED_MAJOR=3
|
|
|
+OLDEST_PYTHON_SUPPORTED_MINOR=7
|
|
|
|
|
|
-for p_cmd in python python3
|
|
|
-do
|
|
|
+for p_cmd in python3 python python3.7 python3.8 python3.9 python3.10 python3.11 python3.12; do
|
|
|
+ $p_cmd --version >/dev/null 2>&1 || continue
|
|
|
echo "Checking \"$p_cmd\" ..."
|
|
|
|
|
|
- if [ "$($p_cmd -c "import sys; print(sys.version_info.major)")" = 3 ]; then
|
|
|
- ESP_PYTHON=$p_cmd
|
|
|
- break
|
|
|
- fi
|
|
|
-done
|
|
|
+ $p_cmd -c "import sys; exit(1) if sys.version_info.major < int(\"$OLDEST_PYTHON_SUPPORTED_MAJOR\") else exit(0);" || continue
|
|
|
+ $p_cmd -c "import sys; exit(1) if sys.version_info.minor < int(\"$OLDEST_PYTHON_SUPPORTED_MINOR\") else exit(0);" || continue
|
|
|
|
|
|
-$ESP_PYTHON --version || { echo "\"$ESP_PYTHON\" is not installed! Please see the documentation for how to install it."; exit 1; }
|
|
|
+ ESP_PYTHON=$p_cmd
|
|
|
+ break
|
|
|
+done
|
|
|
|
|
|
+$ESP_PYTHON --version 2>/dev/null || {
|
|
|
+ echo "Python ${OLDEST_PYTHON_SUPPORTED_MAJOR}.${OLDEST_PYTHON_SUPPORTED_MINOR}+ is not installed! Please see the documentation for how to install it."
|
|
|
+ exit 1
|
|
|
+}
|
|
|
echo "\"$ESP_PYTHON\" has been detected"
|