#!/bin/bash # Preguntar la versión de Python que se desea instalar read -p "Ingresa la versión de Python que deseas establecer como global (por ejemplo, 3.11.2 o 3.8.9): " PYTHON_VERSION # Validar el formato de la versión ingresada (más permisivo) if [[ ! $PYTHON_VERSION =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?([a-zA-Z0-9]+)?$ ]]; then echo "❌ Formato inválido. Asegúrate de ingresar una versión válida (por ejemplo, 3.11.2, 3.8.9, 3.8.9b1)." exit 1 fi # Comprobar si pyenv está instalado if ! command -v pyenv &> /dev/null; then echo "pyenv no está instalado. Procediendo a instalarlo..." # Instalar dependencias para pyenv apt-get update apt-get install -y curl git build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev # Instalar pyenv curl https://pyenv.run | bash # Configurar pyenv en el shell actual export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" # Agregar pyenv al bashrc para futuros shells echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init --path)"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc fi # Verificar si la versión de Python ya está instalada con pyenv if pyenv versions --bare | grep -q "^$PYTHON_VERSION$"; then echo "✅ Python $PYTHON_VERSION ya está instalado." else # Instalar la versión solicitada de Python echo "Instalando Python $PYTHON_VERSION con pyenv..." pyenv install $PYTHON_VERSION # Comprobar si la instalación fue exitosa if [[ $? -ne 0 ]]; then echo "❌ Error durante la instalación de Python $PYTHON_VERSION." exit 1 fi fi # Establecer la versión global de Python con pyenv echo "Configurando Python $PYTHON_VERSION como versión global..." pyenv global $PYTHON_VERSION # Actualizar pip a la última versión echo "Actualizando pip..." pip install --upgrade pip # Verificar la instalación echo "Verificando la instalación..." python --version pip --version # Recargar .bashrc para aplicar los cambios echo "Recargando .bashrc para aplicar los cambios de pyenv..." source ~/.bashrc echo "✅ Python $PYTHON_VERSION configurado como versión global exitosamente."