Erreur d’environnement géré en externe avec Pip dans Ubuntu 23.10


  • Français


  • J’ai récemment mis à jour vers Ubuntu 23.10. Les choses sont pour la plupart fluides. Cependant, j’ai récemment rencontré un problème qui n’était pas présent dans la version précédente.

    J’essayais d’installer un package à l’aide de Pip, un gestionnaire de packages Python basé sur la ligne de commande. Cela fonctionne très bien généralement mais cela a jeté une erreur cette fois:

    erreur : environnement géré en externe

    erreur d'environnement géré en externe dans Ubuntu

    Voici le message d’erreur complet si vous voulez le lire :

    × 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.
    

    Et si vous lisez les détails, vous comprendrez pourquoi vous voyez cette erreur.

    Raison de l’erreur “Environnement géré en externe”

    Ubuntu 23.10, Fedora 38 et probablement d’autres versions de distribution récentes implémentent cette amélioration sur l’utilisation des packages Python.

    La modification a été apportée pour éviter le “conflit entre les gestionnaires de packages du système d’exploitation et les outils de gestion de packages spécifiques à Python tels que pip. Ces conflits incluent à la fois des incompatibilités d’API au niveau Python et des conflits sur la propriété des fichiers”.

    Plus de détails peuvent être trouvés sur cette page.

    PEP 668 – Marquage des environnements de base Python comme « gérés en externe » | peps.python.org

    Propositions d’amélioration de Python (PEP)

    Quelles sont vos options ?

    Vous pouvez faire trois choses lorsque vous essayez d’installer un package Python et que vous voyez cette erreur.

    1. Installer le package natif
    2. Créer des environnements virtuels en Python
    3. Utiliser Pipx (recommandé)

    Voyons-les un par un.

    Option 1 : optez pour le package natif

    Je comprends que Pip offre un moyen confortable d’installer des packages Python. Cependant, certaines applications Python sont également packagées en tant que packages APT ou autres packages natifs. Recherchez-le dans les dépôts de votre distribution et installez-le à partir de là s’il est disponible.

    Par exemple, j’essayais d’installer WoeUSB-ng. Si j’utilisais Arch Linux, le même package est disponible auprès d’AUR.

    Option 2 : Utiliser l’environnement virtuel Python

    Si vous devez utiliser un package Python, vous devez l’isoler dans l’environnement virtuel Python.

    À l’aide d’environnements virtuels, vous pouvez utiliser différentes versions des dépendances de packages et de Python. De cette façon, vous évitez tout conflit entre les packages.

    📋

    Cette méthode convient aux développeurs de logiciels et aux programmeurs travaillant sur des projets Python.

    Voyons rapidement comment vous procédez. Habituellement, Python devrait déjà disposer de l’outil de création d’environnements virtuels.

    Utilisez la commande ci-dessous pour créer un environnement virtuel pour votre projet. Remplacer project_name avec le nom de votre projet, bien sûr.

    python3 -m venv .venv/project_name

    Si vous voyez des erreurs venv liéesvous devrez peut-être l’installer.

    sudo apt install python3-venv
    

    Maintenant, vous verrez un répertoire nommé .env dans votre répertoire personnel et à l’intérieur du .env, vous aurez le répertoire du projet.

    Voici la partie passionnante. Chaque répertoire de projet contiendra sa propre copie de Python et Pip.

    Environnement virtuel en Python

    C’est votre environnement Python virtuel. Vous pouvez utiliser ce “binaire local” pour installer des packages Python à l’aide de Pip dans cet environnement virtuel comme ceci :

    .venv/project_name/bin/pip install package_name
    Installation de packages Python à l'aide de Pip dans un environnement virtuel

    N’oubliez pas que le package Python installé ne sera pas disponible sur l’ensemble du système.

    Ce n’était qu’un bref exemple d’environnements virtuels en Python. Voici un guide détaillé si vous souhaitez en savoir plus.

    Environnements virtuels Python : une introduction – Real Python

    Dans ce didacticiel, vous apprendrez à utiliser un environnement virtuel Python pour gérer vos projets Python. Vous plongerez également dans la structure des environnements virtuels construits à l’aide du module venv, ainsi que le raisonnement derrière l’utilisation des environnements virtuels.

    Ce que vous avez vu ci-dessus implique un travail manuel. Pipx l’automatise.

    Il crée automatiquement un nouvel environnement virtuel pour chaque application que vous installez. Non seulement que. Il crée également un lien vers celui-ci dans .local/bin. De cette façon, l’utilisateur qui a installé le package peut l’exécuter depuis n’importe où dans la ligne de commande.

    Je suppose que c’est ce que la plupart des utilisateurs de Linux de bureau veulent ici.

    Installez pipx sur Ubuntu en utilisant cette commande :

    sudo apt install pipx

    Il installera probablement un grand nombre de dépendances :

    Installer pipx

    Maintenant, ajoutez-le au PATH pour pouvoir courir de n’importe où.

    pipx ensurepath
    
    Ajouter pipx à PATH

    Vous devez fermer le terminal et vous reconnecter pour que les modifications se produisent.

    Super! Vous pouvez maintenant installer des packages Python en utilisant Pipx au lieu de Pip :

    pipx install package_name

    Voici un exemple.

    Installer un package avec Pipx

    💡

    Pour supprimer un package installé avec pipx, utilisez pipx uninstall package_name commande.

    Conclusion

    Pip est un bon outil pour obtenir des packages Python sur le système. Je pense que cela a toujours été destiné aux programmeurs Python, pas aux utilisateurs finaux. De toute évidence, il ne peut pas être utilisé en remplacement des packages de distribution natifs et les développeurs Python l’ont clairement indiqué.

    La bonne chose est que des alternatives existent à la fois pour les programmeurs et les utilisateurs finaux.

    J’espère que ce tutoriel vous a aidé à comprendre et à surmonter l’erreur d’environnement géré en externe avec Pip sous Linux.

    S’il vous plaît laissez-moi savoir si vous avez des questions ou des suggestions.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code