#!/bin/sh # Warn if still in a venv if [ -n "$VIRTUAL_ENV" ]; then echo "The current venv is still active! Run deactivate first!" exit 1 fi python_versions="" for dir in $(echo "$PATH" | tr ':' ' '); do for version in "$dir"/python3.[0-9]*; do # Überprüfe, ob die Datei tatsächlich existiert (falls kein Treffer, wird $version auf "$dir/python3.[0-9]*" gesetzt) if [ -e "$version" ]; then # Überprüfe, ob die Datei existiert und ausführbar ist if [ -x "$version" ] && "$version" --version >/dev/null 2>&1; then python_versions="$python_versions $version" fi fi done done if [ -z "$python_versions" ]; then echo "No Python3 versions found." exit 1 fi # Entferne Duplikate und sortiere die Python-Versionen python_versions=$(echo "$python_versions" | tr ' ' '\n' | sort -u -r | tr '\n' ' ') # Nummerierte Liste der Python-Versionen anzeigen echo "Installed Python3 versions:" i=1 for version in $python_versions; do echo "$i) $(basename "$version")" i=$((i + 1)) done # Benutzer nach der Auswahl fragen echo "Select the number of the Python version you want to use:" read user_choice if [ -z "$user_choice" ]; then user_choice=1 fi # Überprüfen, ob die Eingabe eine Zahl ist if echo "$user_choice" | grep -qE '^[0-9]+$'; then i=1 for version in $python_versions; do if [ "$i" -eq "$user_choice" ]; then python_version=$(basename "$version") break fi i=$((i + 1)) done # Überprüfen, ob eine gültige Auswahl getroffen wurde if [ -n "$python_version" ]; then echo "You selected: $version" else echo "Invalid selection." exit 1 fi else echo "Please enter a valid number." exit 1 fi # Additional parameter additional_parameters="--upgrade-deps --clear" echo "Should the venv have access to the system packages? (y/n)" read -r add_system_packages if [ "$add_system_packages" = "y" ]; then additional_parameters="$additional_parameters --system-site-packages" fi # Create venv $version -m venv venv $additional_parameters source ./venv/bin/activate # Install requirements.txt echo "Install packages from requirements.txt? (y/n)" read -r install_requirements_txt if [ "$install_requirements_txt" = "y" ]; then python3 -m pip install -r requirements.txt fi