Files
Desarrollo_docker/share/utils/python-manager.sh
T

70 lines
2.3 KiB
Bash

#!/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."