Guía de instalación

synopsis

Guía de instalación de Python 3.12.x en Linux (Ubuntu/Kubuntu 24.04) y uso de entornos virtuales con venv

Python 3.12.x (desde código fuente)

Requisitos de compilación (Ubuntu/Kubuntu 24.04):

sudo apt update
sudo apt install -y \
  build-essential \
  libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
  libncursesw5-dev tk-dev uuid-dev libffi-dev \
  liblzma-dev xz-utils libxml2-dev libxmlsec1-dev wget curl

Descargar y compilar (ajusta la versión estable de 3.12.x si corresponde):

PYVER=3.12.6
cd /tmp
wget https://www.python.org/ftp/python/${PYVER}/Python-${PYVER}.tgz
tar xf Python-${PYVER}.tgz
cd Python-${PYVER}

Configurar y compilar con optimizaciones (esto instala en /usr/local sin pisar el Python del sistema):

./configure --enable-optimizations --with-lto --prefix=/usr/local
make -j"$(nproc)"
sudo make altinstall

Verifica la instalación:

/usr/local/bin/python3.12 --version
/usr/local/bin/python3.12 -m pip --version

Gestionar múltiples versiones (sin alterar el Python del sistema)

Recomendación: invocar explícitamente /usr/local/bin/python3.12 y pip3.12 para evitar conflictos con el Python provisto por la distribución.

Opcionalmente, crea alias en tu shell (~/.bashrc o ~/.zshrc):

echo 'alias py312="/usr/local/bin/python3.12"' >> ~/.bashrc
echo 'alias pip312="/usr/local/bin/pip3.12"'   >> ~/.bashrc
# luego recarga tu shell:
source ~/.bashrc

Pip

Python 3.12 incluye pip. Si lo necesitas, asegúrate de tenerlo al día:

/usr/local/bin/python3.12 -m ensurepip --upgrade
/usr/local/bin/python3.12 -m pip install --upgrade pip setuptools wheel

Entornos virtuales con venv (recomendado)

A partir de Python 3.3, la forma estándar de crear entornos virtuales es con venv (no se usa virtualenvwrapper).

Crear un entorno local en el proyecto

Desde la carpeta de tu proyecto:

# Crea el entorno .venv usando Python 3.12
/usr/local/bin/python3.12 -m venv .venv

# Activa el entorno (bash/zsh)
source .venv/bin/activate

# Verifica que estás dentro del entorno
python -V
python -m pip -V

Comandos útiles en el día a día

Instalar dependencias:

python -m pip install -r requirements.txt

Guardar dependencias actuales:

python -m pip freeze > requirements.txt

Actualizar pip y herramientas básicas dentro del entorno:

python -m pip install --upgrade pip setuptools wheel

Instalar un paquete puntual:

python -m pip install nombre-paquete

Salir/desactivar el entorno virtual:

deactivate

Eliminar el entorno (cuando necesites recrearlo):

deactivate  # si está activo
rm -rf .venv

### Recrear el entorno desde cero (patrón recomendado)

Cuando cambies de versión de Python o sospeches de conflictos, recrea el entorno limpio:

rm -rf .venv
/usr/local/bin/python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install -r requirements.txt

Solución de problemas

  • _ssl o lzma no disponibles al compilar: asegúrate de tener instaladas las dev libs: libssl-dev y liblzma-dev antes de compilar.

  • Evita cambiar el python/python3 del sistema: usa únicamente /usr/local/bin/python3.12 (o alias) para tu trabajo diario.

  • Si pip no aparece dentro del entorno: ejecuta python -m ensurepip --upgrade y luego python -m pip install --upgrade pip.

Listo!