scripts: Add python3-venv to prereqs

Python3.11 (pep 668) enforced pip install within a virtual environment.
Check and optionally set up the python virtual environment before
installing python packages.

Change-Id: Ifa68ac517cea9dd27497e37cdc0b1cced889e433
diff --git a/install-prereqs.sh b/install-prereqs.sh
index 54b8681..e23d90e 100755
--- a/install-prereqs.sh
+++ b/install-prereqs.sh
@@ -81,6 +81,7 @@
     python3
     python3-dev
     python3-pip
+    python3-venv
     rsync
     srecord
     texinfo
@@ -123,7 +124,18 @@
 
 function try_install_python_packages {
     local package
+
     if [[ ! -z ${PYTHON_REQUIREMENTS} ]]; then
+        if [[ -z ${ROOTDIR} ]]; then
+            echo "Source build/setup.sh first."
+            exit 1
+        fi
+
+        # Setup python virtual environment.
+        if [[ ! -f "${PYTHON_SHODAN_ENV}/bin/activate" ]]; then
+            echo Creating virtual python environment ${PYTHON_SHODAN_ENV}
+            python3 -m venv --system-site-packages --upgrade-deps "${PYTHON_SHODAN_ENV}"
+        fi
         PIP_INSTALL_ARGS=""
         for REQ_FILE in ${PYTHON_REQUIREMENTS} ; do
             PIP_INSTALL_ARGS="${PIP_INSTALL_ARGS} -r ${REQ_FILE}"