Tutoriales

Entorno de gestión externo incorrecto para Pip en Ubuntu 23.10

Recientemente actualicé a Ubuntu 23.10. Las cosas en su mayoría fueron bien. Sin embargo, recientemente me encontré con problemas que no tenía en versiones anteriores.

Estoy tratando de instalar un paquete usando Pip, un administrador de paquetes basado en la línea de comandos para Python. Por lo general, funciona bien, pero esta vez arroja un error:

Error: entorno de gestión externo

Aquí está el mensaje de error completo si desea leerlo:

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Si lee los detalles, entenderá por qué está viendo este error.

El motivo del error «Entorno de gestión externo»

Ubuntu 23.10, Fedora 38 y posiblemente otras distribuciones recientes están implementando esta mejora en el uso de paquetes de Python.

LEER  Una utilidad para el escaneo extenso de Internet con Nuclei

Este cambio se realizó para evitar «conflictos entre los administradores de paquetes del sistema operativo y las herramientas de administración de paquetes específicas de Python, como pip. Estos conflictos incluyen incompatibilidades de API a nivel de Python y conflictos de propiedad de archivos».

Más detalles se pueden encontrar en esta página.

PEP 668: marcar el entorno base de Python como «administrado externamente» | peps.python.org

Propuestas de mejora de Python (PEP)

¿Cuáles son tus opciones?

Cuando intenta instalar un paquete de Python y ve este error, hay tres cosas que puede hacer.

  1. Instalar paquetes nativos
  2. Crear un entorno virtual en Python
  3. Usar Pipx (recomendado)

Echemos un vistazo a ellos uno por uno.

Opción 1: Elija el paquete nativo

Sé que Pip proporciona una forma cómoda de instalar paquetes de Python. Sin embargo, algunas aplicaciones de Python también se empaquetan como APT u otros paquetes nativos. Búscalo en el repositorio de tu distribución e instálalo desde allí (si está disponible).

Por ejemplo, traté de instalar WoeUSB-ng. Si estoy usando Arch Linux, puedo obtener los mismos paquetes de AUR.

Opción 2: usar un entorno virtual de Python

Si se debe usar un paquete de Python, debe aislarse en un entorno virtual de Python.

Con entornos virtuales, puede usar diferentes versiones de dependencias de paquetes y Python. De esta manera, evita cualquier conflicto entre paquetes.

📋

Este enfoque está destinado a desarrolladores de software y programadores que trabajan en proyectos de Python.

Echemos un vistazo rápido a cómo lo haces. En general, Python ya debería tener las herramientas para crear entornos virtuales.

Cree un entorno virtual para su proyecto con el siguiente comando.reemplazar project_name Utilice el nombre de su proyecto, por supuesto.

python3 -m venv .venv/project_name

Si ve errores de venv relacionados cones posible que deba instalarlo.

sudo apt install python3-venv

Ahora verás un .env En su directorio de inicio y en .env tendrá el directorio del proyecto.

Esta es la mejor parte. Cada directorio de proyecto tiene su propia copia de Python y Pip.

Entornos virtuales en Python

Ese es su entorno virtual de Python. Puede usar este «binario nativo» para instalar paquetes de Python usando Pip en este entorno virtual de la siguiente manera:

.venv/project_name/bin/pip install package_name
Instale paquetes de Python usando Pip en un entorno virtual

Tenga en cuenta que los paquetes de Python instalados no estarán disponibles en todo el sistema.

Este es solo un breve ejemplo de entornos virtuales en Python. Si quieres saber más, aquí tienes una guía detallada.

Entornos virtuales de Python: Primeros pasos – Real Python

En este tutorial, aprenderá a usar un entorno virtual de Python para administrar sus proyectos de Python. También obtendrá información sobre la estructura de los entornos virtuales creados con el módulo venv y las razones detrás del uso de entornos virtuales.

Lo que ves arriba implica trabajo manual. Pipx lo automatiza.

Crea automáticamente un nuevo entorno virtual para cada aplicación que instale. no solo.También crea un enlace a él en .local/binDe esta forma, el usuario que instaló el paquete puede ejecutarlo desde cualquier lugar de la línea de comandos.

Creo que eso es lo que quieren la mayoría de los usuarios de Linux de escritorio.

Instale pipx en Ubuntu con el siguiente comando:

sudo apt install pipx

Puede instalar muchas dependencias:

instalar pipx

Ahora agréguelo a su RUTA para que pueda ejecutarlo desde cualquier lugar.

pipx ensurepath
Agregar pipx a la RUTA

Debe cerrar la terminal y volver a iniciar sesión para que los cambios surtan efecto.

¡excelente! Ahora puede instalar paquetes de Python usando Pipx en lugar de Pip:

pipx install package_name

Aquí hay un ejemplo.

Use Pipx para instalar el paquete

💡

Para eliminar un paquete instalado con pipx, utilice pipx uninstall package_name Orden.

en conclusión

pip es una gran herramienta para obtener paquetes de Python en su sistema. Creo que siempre está destinado a los programadores de Python, no a los usuarios finales. Evidentemente, no se puede usar como reemplazo de la distribución nativa, los desarrolladores de Python lo han dejado claro.

La buena noticia es que existen alternativas tanto para programadores como para usuarios finales.

Espero que este tutorial lo haya ayudado a comprender y superar los errores del entorno de administración externa de Pip en Linux.

Por favor, hágamelo saber si tiene alguna pregunta o sugerencia.

LEER  Richard Stallman, el mesías del software libre

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba