Desde Ubuntu 22.04 LTS ha incorporado de forma estricta la especificación PEP 668, una directiva diseñada para evitar conflictos entre los paquetes gestionados por el sistema operativo y aquellos instalados por el usuario mediante pip. Sin embargo, esta medida, aunque orientada a proteger la estabilidad del sistema, ha generado polémica entre desarrolladores y usuarios avanzados que ven afectada su experiencia y flujo de trabajo.
Ni Windows se atrevió a tanto
Con la adopción de PEP 668, Ubuntu ha marcado su entorno base de Python como un “entorno gestionado externamente” (externally managed), lo que bloquea la instalación directa de paquetes mediante pip fuera de entornos virtuales. Al intentar instalar un paquete en el entorno global, los usuarios reciben un mensaje de error como el siguiente:

Esta restricción no solo afecta la instalación, sino también la actualización y desinstalación de paquetes, limitando la flexibilidad y obligando a los desarrolladores a modificar sus hábitos habituales.
¿Cómo afecta esto al desarrollo local?
La medida obliga a los usuarios a crear y activar entornos virtuales (mediante python3 -m venv) para gestionar sus dependencias, lo que añade pasos adicionales y puede resultar engorroso para tareas rápidas o proyectos pequeños. Asimismo, se impulsa el uso de herramientas como pipx para instalar y ejecutar aplicaciones Python en entornos aislados, un cambio que muchos consideran innecesariamente complejo y que añade una curva de aprendizaje.
Frente a estas nuevas restricciones, existen varias opciones para continuar trabajando sin tropiezos:
- Entornos virtuales: La recomendación oficial sigue siendo la creación de entornos aislados donde instalar y gestionar paquetes sin interferir con el sistema base.
- Uso de pipx: Para aplicaciones independientes, pipx facilita su instalación y ejecución sin afectar el entorno global.
- Forzar la instalación con –break-system-packages: Esta opción permite instalar paquetes en el entorno base pese a las restricciones, aunque con riesgos potenciales de inestabilidad y conflictos.
Balance entre seguridad y flexibilidad
Aunque la adopción de PEP 668 busca proteger la integridad y estabilidad del sistema operativo evitando la mezcla de paquetes gestionados y no gestionados, la imposición estricta de estas políticas ha generado descontento en la comunidad de desarrolladores. El debate sigue abierto sobre cómo encontrar un equilibrio entre la seguridad del sistema y la flexibilidad necesaria para un desarrollo ágil y eficiente.