📘 Este artículo forma parte de nuestra Guía Completa de Inteligencia Artificial 2026 y complementa a Problemas comunes al instalar librerías con pip. Si trabajas con Python, esas guías son tu punto de partida.
Introducción
Mantener las bibliotecas de Python actualizadas es una de las tareas más importantes —y a menudo más descuidadas— en cualquier proyecto. Las actualizaciones traen:
- Parches de seguridad críticos.
- Nuevas funcionalidades.
- Mejoras de rendimiento.
- Compatibilidad con nuevas versiones de Python.
- Corrección de bugs.
Pero también pueden romper tu código si no se hacen con cuidado. En 2026, con la explosión de la IA y el machine learning, mantener actualizado tu entorno (PyTorch, TensorFlow, NumPy, Pandas…) es más importante que nunca.
En esta guía completa vas a aprender:
- Por qué actualizar (y cuándo no).
- Cómo listar todas las bibliotecas instaladas.
- Métodos para actualizar (pip, pip-tools, poetry, uv).
- Cómo actualizar solo el entorno virtual (sin romper el sistema).
- Cómo actualizar con control (sin romper dependencias).
- Herramientas modernas (uv, pipx, poetry).
- Actualización selectiva vs masiva.
- Cómo detectar conflictos antes de actualizar.
- Rollback si algo se rompe.
- Automatización con CI/CD.
- FAQ con las preguntas más frecuentes.
Si estás empezando con Python, consulta Aprende a programar en Python desde cero. Para problemas de instalación, Problemas comunes al instalar librerías con pip.
Índice de contenidos
- Por qué actualizar (y cuándo no)
- Listar bibliotecas instaladas
- Método 1: pip (el estándar)
- Método 2: pip-upgrader
- Método 3: pip-tools (recomendado)
- Método 4: Poetry (proyectos)
- Método 5: uv (el más rápido)
- Actualización selectiva
- Detectar conflictos antes de actualizar
- Rollback si algo se rompe
- Automatización con CI/CD
- Buenas prácticas
- FAQ
- Conclusión
1. Por qué actualizar (y cuándo no)
1.1 Por qué actualizar
Seguridad:
- Parches de CVEs críticos.
- Vulnerabilidades conocidas.
- Ataques a dependencias.
Funcionalidad:
- Nuevas features.
- Mejoras de API.
- Compatibilidad con Python nuevo.
Rendimiento:
- Optimizaciones internas.
- Menos consumo de memoria.
Compatibilidad:
- Con otras librerías.
- Con versiones recientes de Python.
Datos:
- +70% de las brechas explotan vulnerabilidades con parche disponible.
- +50% de las librerías tienen actualizaciones de seguridad al año.
1.2 Cuándo NO actualizar
En producción:
- Nunca directamente.
- Primero staging.
- Con tests.
- Con backup.
En proyectos estables:
- Si funciona, no lo toques (casi siempre).
- Fija versiones con
requirements.txt. - Solo actualiza por seguridad.
Antes de deadlines:
- No actualizar en momentos críticos.
- Esperar a tener tiempo para resolver problemas.
1.3 Riesgos de actualizar
- Breaking changes en APIs.
- Incompatibilidades entre librerías.
- Deprecaciones de funciones.
- Cambios de comportamiento.
- Bugs nuevos.
1.4 Riesgos de NO actualizar
- Vulnerabilidades explotables.
- Incompatibilidad con nuevas versiones.
- Falta de soporte.
- Bugs conocidos.
- Rendimiento subóptimo.
Regla: actualiza regularmente pero con cuidado.
2. Listar bibliotecas instaladas
2.1 pip list
pip listSalida:
Package Version
---------- -------
numpy 1.24.0
pandas 2.0.0
requests 2.31.0Solo desactualizadas:
pip list --outdatedSalida:
Package Version Latest Type
---------- ------- ------- -----
numpy 1.24.0 1.26.4 wheel
pandas 2.0.0 2.2.0 wheel2.2 pip freeze
pip freezeSalida (formato requirements.txt):
numpy==1.24.0
pandas==2.0.0
requests==2.31.0Útil para:
- Backup del entorno.
- Replicar en otro sistema.
- Documentar versiones.
# Guardar
pip freeze > requirements_backup.txt2.3 pip show
pip show numpySalida:
Name: numpy
Version: 1.24.0
Summary: Fundamental package for array computing in Python
Home-page: https://numpy.org
Author: Travis E. Oliphant et al.
License: BSD-3-Clause
Location: /usr/lib/python3/dist-packages
Requires:
Required-by: pandas, scipyÚtil para:
- Ver dependencias.
- Ver quién requiere la librería.
2.4 Herramientas avanzadas
pipdeptree:
pip install pipdeptree
pipdeptreeSalida: árbol de dependencias.
Útil para: detectar conflictos.
# Ver qué requiere una librería
pipdeptree -p numpypip-check:
pip install pip-check
pip-checkSalida: lista de actualizaciones disponibles con colores.
3. Método 1: pip (el estándar)
3.1 Actualizar pip
Siempre primero:
python3 -m pip install --upgrade pipO:
pip install --upgrade pip3.2 Actualizar una librería
pip install --upgrade numpyO:
pip install -U numpy3.3 Actualizar todas las librerías (comando básico)
Comando clásico:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -UDesglose:
pip list --outdated --format=freeze: lista solo desactualizadas.grep -v '^\-e': excluye paquetes en modo editable.cut -d = -f 1: extrae solo el nombre.xargs -n1 pip install -U: actualiza uno a uno.
⚠️ Problemas:
- No comprueba dependencias.
- Puede romper cosas.
- No hace rollback.
3.4 Versión más segura
Con output a archivo:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 > outdated.txt
cat outdated.txtRevisar y luego:
xargs -n1 pip install -U < outdated.txt3.5 Actualizar todo (Windows)
pip freeze > requirements.txt
pip install --upgrade -r requirements.txt⚠️ Cuidado: esto reinstala lo mismo, no actualiza.
Comando correcto en Windows:
for /F "tokens=1" %i in ('pip list --outdated --format=freeze ^| findstr /V /R "^\-e"') do pip install -U %iEn PowerShell:
pip list --outdated --format=freeze | ForEach-Object { ($_ -split "==")[0] } | ForEach-Object { pip install -U $_ }3.6 Versión mejorada con exclusiones
Excluir paquetes específicos:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | grep -vE '^(torch|tensorflow|jax)$' | xargs -n1 pip install -UEjemplo: no actualizar torch/tensorflow (rompen compatibilidad).
4. Método 2: pip-upgrader
Herramienta interactiva que permite elegir qué actualizar.
4.1 Instalación
pip install pip-upgrader4.2 Uso básico
pip-upgradeInterfaz interactiva:
=== Outdated packages ===
[1] numpy 1.24.0 → 1.26.4
[2] pandas 2.0.0 → 2.2.0
[3] requests 2.31.0 → 2.32.0
Select packages to upgrade (e.g., 1 3, or 'all'):4.3 Uso avanzado
Ver sin actualizar:
pip-upgrade --dry-runExcluir paquetes:
pip-upgrade --skip-package torch --skip-package tensorflowCon archivo requirements:
pip-upgrade requirements.txt4.4 Ventajas y desventajas
Ventajas:
- Interactivo.
- Selectivo.
- Seguro.
Desventajas:
- No gestiona dependencias.
- Menos popular que pip-tools.
5. Método 3: pip-tools (recomendado)
La mejor opción para proyectos serios.
5.1 Instalación
pip install pip-tools5.2 Conceptos
pip-tools separa:
requirements.in: dependencias directas (lo que tú necesitas).requirements.txt: dependencias resueltas con versiones fijas.
Ventaja: resolución de dependencias completa.
5.3 Uso básico
1. Crear requirements.in:
numpy
pandas
requests
scikit-learn2. Compilar:
pip-compile requirements.inGenera requirements.txt:
#
# This file is autogenerated by pip-compile with Python 3.12
# by the following command:
#
# pip-compile requirements.in
#
numpy==1.26.4
# via
# pandas
# scikit-learn
pandas==2.2.0
# via -r requirements.in
requests==2.32.0
# via -r requirements.in
scikit-learn==1.4.0
# via -r requirements.in3. Instalar:
pip-sync requirements.txt5.4 Actualizar dependencias
pip-compile --upgrade requirements.inSolo una librería:
pip-compile --upgrade-package numpy requirements.inSolo librerías de seguridad:
pip-compile --upgrade-package numpy --upgrade-package requests requirements.in5.5 Sincronizar entorno
pip-sync requirements.txtVentaja: el entorno queda exactamente como el requirements.txt.
⚠️ Cuidado: elimina paquetes no listados.
5.6 Dependencias de desarrollo
requirements-dev.in:
-r requirements.in
pytest
black
mypyCompilar:
pip-compile requirements-dev.in5.7 Ventajas y desventajas
Ventajas:
- Resolución de dependencias.
- Reproducibilidad.
- Seguridad.
- Fácil rollback.
Desventajas:
- Más pasos.
- Curva de aprendizaje.
Recomendación: el mejor método para proyectos serios.
Consulta Problemas comunes al instalar librerías con pip.
6. Método 4: Poetry (proyectos)
Gestión moderna de dependencias.
6.1 Instalación
curl -sSL https://install.python-poetry.org | python3 -6.2 Crear proyecto
poetry new mi-proyecto
cd mi-proyecto6.3 Añadir dependencias
poetry add numpy pandas requestsAñade a pyproject.toml:
[tool.poetry.dependencies]
python = "^3.12"
numpy = "^1.26"
pandas = "^2.2"
requests = "^2.32"6.4 Actualizar dependencias
Ver qué se puede actualizar:
poetry show --outdatedActualizar todo:
poetry updateActualizar una librería:
poetry update numpyForzar actualización mayor:
poetry add numpy@latest6.5 Instalar entorno
poetry installVentaja: crea entorno virtual automáticamente.
6.6 Ventajas y desventajas
Ventajas:
- Gestión completa.
pyproject.tomlestándar.- Entornos virtuales automáticos.
- Lock file reproducible.
Desventajas:
- Curva de aprendizaje.
- Más lento que pip.
- Menos flexible en algunos casos.
Recomendación: ideal para librerías y proyectos a largo plazo.
7. Método 5: uv (el más rápido)
El futuro de la gestión de dependencias Python. Creado por Astral (creadores de Ruff).
7.1 Instalación
curl -LsSf https://astral.sh/uv/install.sh | shO:
pip install uv7.2 Por qué uv
- 10-100x más rápido que pip.
- Compatible con pip (
requirements.txt). - Gestión de entornos virtuales.
- Resolución de dependencias.
- Lock files reproducibles.
- Escrito en Rust.
7.3 Uso básico
Crear proyecto:
uv init mi-proyecto
cd mi-proyectoAñadir dependencias:
uv add numpy pandas requestsSincronizar entorno:
uv syncActualizar todo:
uv lock --upgrade
uv syncActualizar una librería:
uv lock --upgrade-package numpy
uv sync7.4 Compatibilidad con pip
Reemplaza pip directamente:
uv pip install numpy
uv pip list
uv pip freezeUsa el mismo requirements.txt:
uv pip install -r requirements.txt
uv pip compile requirements.in7.5 Velocidad
Ejemplo real:
- pip install numpy pandas scikit-learn: ~30 segundos.
- uv pip install numpy pandas scikit-learn: ~2 segundos.
Ventaja: 15x más rápido.
7.6 Ventajas y desventajas
Ventajas:
- Extremadamente rápido.
- Compatible con pip.
- Moderno.
- Lock files.
Desventajas:
- Menos maduro que pip.
- Algunos paquetes con problemas.
- Comunidad creciente.
Recomendación: uv es el futuro. Para proyectos nuevos, úsalo.
Consulta Lenguajes de programación para IA.
8. Actualización selectiva
No siempre hay que actualizar todo.
8.1 Estrategia por criticidad
Alta prioridad (actualizar siempre):
- Seguridad:
cryptography,requests,urllib3,pyyaml,jinja2. - Dependencias base:
pip,setuptools,wheel.
Media prioridad (actualizar con tests):
- Data science:
numpy,pandas,matplotlib. - ML:
scikit-learn,xgboost.
Baja prioridad (actualizar con cuidado):
- Deep learning:
torch,tensorflow(breaking changes frecuentes). - Frameworks:
django,flask(cambios de API).
Nunca actualizar sin motivo:
- Todo lo que funciona.
8.2 Estrategia por proyecto
Proyecto en producción:
# Solo parches de seguridad
pip list --outdated --format=json | jq -r '.[] | select(.latest_version | test("^[0-9]+\\.[0-9]+\\.[0-9]+$")) | .name' | xargs -n1 pip install -UProyecto en desarrollo:
# Todo, con tests
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
pytestProyecto personal:
# Todo
pip-upgrade8.3 Excluir paquetes problemáticos
Crea un archivo exclude.txt:
torch
tensorflow
tensorflow-gpu
jax
jaxlibScript de actualización:
#!/bin/bash
pip list --outdated --format=freeze | \
grep -v '^\-e' | \
cut -d = -f 1 | \
grep -vxF -f exclude.txt | \
xargs -n1 pip install -U8.4 Actualizar solo dependencias directas
Con pip-tools:
pip-compile --upgrade requirements.inEsto actualiza solo lo que tú pediste, respetando dependencias transitivas.
8.5 Actualizar solo parches (semver)
Actualizar solo X.Y.Z (no X.Y):
# Script Python
import subprocess
import json
outdated = json.loads(
subprocess.check_output(['pip', 'list', '--outdated', '--format=json'])
)
for pkg in outdated:
current = pkg['version'].split('.')
latest = pkg['latest_version'].split('.')
# Solo si es mismo major.minor
if current[0] == latest[0] and current[1] == latest[1]:
subprocess.run(['pip', 'install', '--upgrade', pkg['name']])Ventaja: solo actualiza parches (menor riesgo).
9. Detectar conflictos antes de actualizar
9.1 pip check
pip checkSalida si hay conflictos:
numpy 1.26.4 has requirement ... but you have ...Ejecuta después de cada actualización.
9.2 pipdeptree
pipdeptree --warn silenceDetecta conflictos de dependencias.
Ejemplo:
pipdeptree --reverse --packages numpyMuestra quién depende de numpy.
9.3 pip-review
Herramienta para actualización interactiva:
pip install pip-review
pip-review --interactivePregunta paquete por paquete.
9.4 Entorno de pruebas
Mejor práctica: probar actualización en entorno aislado.
# Crear entorno de prueba
python3 -m venv test-env
source test-env/bin/activate
# Instalar requirements
pip install -r requirements.txt
# Actualizar todo
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
# Probar
pytest
# Si funciona, aplicar al entorno principal9.5 Docker para pruebas
Aislar completamente:
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
RUN pip list --outdated
CMD ["pytest"]docker build -t mi-app-test .
docker run --rm mi-app-testConsulta Qué es Docker.
10. Rollback si algo se rompe
10.1 Backup antes de actualizar
Guardar requirements actuales:
pip freeze > requirements_backup_$(date +%Y%m%d).txtGuardar entorno virtual completo:
# Copiar entorno
cp -r venv venv_backup_$(date +%Y%m%d)10.2 Restaurar desde backup
Reinstalar versiones anteriores:
pip install -r requirements_backup_20260101.txtO desde el entorno copiado:
rm -rf venv
mv venv_backup_20260101 venv10.3 Restaurar una librería específica
pip install numpy==1.24.0Con pip-tools:
# Editar requirements.txt manualmente
# Cambiar numpy==1.26.4 → numpy==1.24.0
pip-sync requirements.txt10.4 Poetry rollback
poetry installRestaura desde poetry.lock.
10.5 uv rollback
uv sync --frozenUsa el lock file anterior.
10.6 Git para código
Si el código también se rompe:
git status
git diff
git checkout -- archivo.pyConsulta Guía Completa de Linux.
11. Automatización con CI/CD
11.1 GitHub Actions
.github/workflows/update-deps.yml:
name: Update Dependencies
on:
schedule:
- cron: '0 0 * * 1' <em># Lunes a medianoche</em>
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install pip-tools
run: pip install pip-tools
- name: Update requirements
run: pip-compile --upgrade requirements.in
- name: Run tests
run: |
pip-sync requirements.txt
pytest
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
title: 'chore: update dependencies'
branch: update-depsVentaja: PR automático si los tests pasan.
11.2 Dependabot
.github/dependabot.yml:
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
groups:
dev-dependencies:
patterns:
- "pytest*"
- "black"
- "mypy"Ventaja: Dependabot gestiona todo.
11.3 Renovate
Alternativa open source a Dependabot.
renovate.json:
{
"extends": ["config:base"],
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch"],
"automerge": true
},
{
"matchUpdateTypes": ["major"],
"automerge": false
}
]
}11.4 Pre-commit hooks
.pre-commit-config.yaml:
repos:
- repo: https://github.com/pycqa/pip-audit
rev: v2.6.0
hooks:
- id: pip-auditVentaja: detecta vulnerabilidades antes de commit.
11.5 pip-audit
Auditoría de seguridad:
pip install pip-audit
pip-auditSalida:
Found 2 known vulnerabilities in 1 package
Name Version ID Fix Versions
------ ------- -------------- ------------
urllib3 1.26.0 GHSA-xxxx-xxxx 1.26.5Integración con CI:
- name: Security audit
run: pip-audit --strictConsulta Seguridad en CI/CD.
12. Buenas prácticas
12.1 Entorno virtual siempre
python3 -m venv venv
source venv/bin/activateNunca actualices el sistema con sudo pip install.
Consulta Cómo instalar JupyterLab en Ubuntu.
12.2 requirements.txt siempre
pip freeze > requirements.txtO mejor: pip-tools, poetry, uv.
12.3 Prueba antes de producción
- Backup del entorno.
- Actualizar en entorno de prueba.
- Ejecutar tests.
- Verificar aplicación.
- Aplicar a producción.
12.4 Actualiza regularmente
Recomendación:
- Mensualmente para proyectos activos.
- Trimestralmente para proyectos estables.
- Inmediatamente para CVEs críticos.
12.5 Documenta versiones
requirements.txt con comentarios:
# Web
flask==3.0.0
requests==2.32.0
# Data
numpy==1.26.4
pandas==2.2.012.6 Monitorea vulnerabilidades
Herramientas:
- pip-audit.
- Safety.
- Dependabot.
- Snyk.
pip install safety
safety check12.7 No actualices todo a la vez
Si algo se rompe, no sabes qué fue.
Estrategia:
- Actualiza grupo a grupo.
- Test después de cada grupo.
- Commit entre grupos.
12.8 Usa lock files
Lock files fijan versiones exactas de todas las dependencias.
Herramientas:
- pip-tools:
requirements.txt. - Poetry:
poetry.lock. - uv:
uv.lock.
Ventaja: reproducibilidad total.
12.9 No rompas el sistema
⚠️ NUNCA:
sudo pip install --upgrade numpy # ❌✅ SÍ:
pip install --upgrade numpy # ✅ (en venv)12.10 Documenta breaking changes
Antes de actualizar:
# Ver changelog
pip show numpy | grep -i "home-page"
# Abrir y leerApunta cambios importantes.
13. FAQ
¿Cómo actualizo todas las librerías en Python?
Método rápido (cuidado):
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -UMétodo recomendado (seguro):
pip install pip-tools
pip-compile --upgrade requirements.in
pip-sync requirements.txt¿Cómo veo qué librerías están desactualizadas?
pip list --outdatedSalida:
Package Version Latest Type
---------- ------- ------- -----
numpy 1.24.0 1.26.4 wheel¿Puedo actualizar solo un paquete?
Sí:
pip install --upgrade numpyCon pip-tools:
pip-compile --upgrade-package numpy requirements.in¿Cómo actualizo pip?
python3 -m pip install --upgrade pipSiempre antes de actualizar otros paquetes.
¿Qué es un entorno virtual?
Espacio aislado con sus propias librerías.
Crear:
python3 -m venv venv
source venv/bin/activateVentaja: no rompe el sistema.
¿Por qué usar entorno virtual?
Razones:
- Aislamiento.
- Diferentes versiones por proyecto.
- No rompe el sistema.
- Reproducibilidad.
¿Cómo actualizo solo paquetes de seguridad?
pip install pip-audit
pip-audit --fixO:
safety check --fix¿Qué es pip-tools?
Herramienta que resuelve dependencias y genera requirements.txt reproducible.
pip install pip-tools
pip-compile requirements.in
pip-sync requirements.txt¿Qué es Poetry?
Gestor moderno de dependencias y entornos.
poetry add numpy
poetry update¿Qué es uv?
Alternativa ultrarápida a pip, escrita en Rust.
uv pip install numpy
uv add numpy
uv syncVentaja: 10-100x más rápido.
¿Cómo hago rollback si algo se rompe?
Backup antes:
pip freeze > backup.txtRollback:
pip install -r backup.txt¿Cómo detecto conflictos de dependencias?
pip checkO:
pipdeptree¿Cómo actualizo en Windows?
PowerShell:
pip list --outdated --format=freeze | ForEach-Object { ($_ -split "==")[0] } | ForEach-Object { pip install -U $_ }CMD:
for /F "tokens=1" %i in ('pip list --outdated --format=freeze ^| findstr /V /R "^\-e"') do pip install -U %i¿Cómo actualizo en Linux?
Bash:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U¿Cómo actualizo en macOS?
Igual que Linux:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U¿Cómo actualizo solo lo que yo instalé?
pip-tools:
pip-compile --upgrade requirements.inEsto actualiza solo dependencias directas.
¿Cómo evito actualizar paquetes problemáticos?
Excluir:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | grep -vE '^(torch|tensorflow)$' | xargs -n1 pip install -U¿Qué es un lock file?
Archivo con versiones exactas de todas las dependencias.
Herramientas:
- pip-tools:
requirements.txt. - Poetry:
poetry.lock. - uv:
uv.lock.
¿Cada cuánto actualizo?
Recomendación:
- Mensual para proyectos activos.
- Trimestral para estables.
- Inmediato para CVEs críticos.
¿Debo actualizar todo a la vez?
No recomendado.
Mejor:
- Por grupos.
- Con tests.
- Con commits.
¿Qué pasa si actualizo y algo se rompe?
Rollback:
pip install -r backup.txtY documenta qué falló.
¿Cómo actualizo solo parches (no major)?
Con script Python:
import subprocess, json
outdated = json.loads(
subprocess.check_output(['pip', 'list', '--outdated', '--format=json'])
)
for pkg in outdated:
current = pkg['version'].split('.')
latest = pkg['latest_version'].split('.')
if current[0] == latest[0] and current[1] == latest[1]:
subprocess.run(['pip', 'install', '--upgrade', pkg['name']])¿Cómo automatizo las actualizaciones?
GitHub Actions:
- name: Update dependencies
run: pip-compile --upgrade requirements.inDependabot: activado en el repo.
¿Qué es pip-audit?
Herramienta que detecta vulnerabilidades en dependencias.
pip install pip-audit
pip-audit¿Qué es Safety?
Alternativa a pip-audit (freemium).
pip install safety
safety check¿Cómo sé si una librería tiene CVEs?
pip-audit o Safety:
pip-audit
safety checkConsulta: https://nvd.nist.gov/
¿Qué es breaking change?
Cambio en una API que rompe código existente.
Ejemplo: numpy 2.0 eliminó funciones deprecadas en 1.x.
Solución: leer changelog antes de actualizar.
¿Cómo leo el changelog de una librería?
pip show numpy | grep Home-page
# Ir a la webO en GitHub: CHANGELOG.md.
¿Qué es semver?
Semantic Versioning: MAJOR.MINOR.PATCH.
- MAJOR: breaking changes.
- MINOR: nuevas features (compatible).
- PATCH: bug fixes.
Regla: ^1.2.3 = >=1.2.3, <2.0.0.
¿Qué es un requirements.txt?
Archivo que lista dependencias:
numpy==1.26.4
pandas==2.2.0
requests==2.32.0Uso:
pip install -r requirements.txt¿Cómo instalo requirements.txt?
pip install -r requirements.txtSiempre en entorno virtual.
¿Qué diferencia hay entre pip y pip3?
pip: puede ser pip de Python 2 (raro).pip3: siempre Python 3.
Recomendación: python3 -m pip para garantizar Python 3.
¿Cómo desinstalo una librería?
pip uninstall numpySin confirmar:
pip uninstall -y numpy¿Cómo actualizo una librería a una versión específica?
pip install numpy==1.24.0O:
pip install "numpy>=1.24,<1.26"¿Cómo veo la versión de una librería?
pip show numpy | grep VersionO en Python:
import numpy
print(numpy.__version__)¿Qué es un conflicto de dependencias?
Dos librerías requieren versiones incompatibles de una tercera.
Ejemplo:
librería Arequierenumpy<1.25.librería Brequierenumpy>=1.25.
Solución: actualizar librería A o usar versión compatible.
14. Conclusión
Actualizar las librerías de Python es una tarea esencial pero que debe hacerse con cuidado. Un entorno desactualizado es vulnerable, pero una actualización descontrolada puede romper tu proyecto.
Puntos clave:
- Siempre entorno virtual.
- Backup antes de actualizar.
- pip-tools es el método recomendado.
- Poetry para proyectos modernos.
- uv para velocidad máxima.
- pip-audit para seguridad.
- Tests después de actualizar.
- Rollback preparado siempre.
- Automatiza con CI/CD.
- Actualiza regularmente.
Recomendación paso a paso:
- Activa entorno virtual.
- Backup:
pip freeze > backup.txt. - Verifica:
pip list --outdated. - Actualiza pip.
- Actualiza con cuidado:
pip-upgradeopip-tools. - Test:
pytest. - Verifica:
pip check. - Documenta.
- Aplica a producción.
Si quieres profundizar:
- Guía Completa de Inteligencia Artificial 2026
- Problemas comunes al instalar librerías con pip
- Aprende a programar en Python desde cero
- La lógica de programación
- Cómo instalar JupyterLab en Ubuntu 24.04
- Cómo empezar con el aprendizaje profundo en Python
- PyTorch para CUDA 12.4
- Lenguajes de programación para IA
- Seguridad en CI/CD
- Guía Completa de Linux
- Qué es Docker






