2023-10-19 02:25 Doba čtení: 6 min

Jak opravit chybu pip „externally-managed-environment“ v Linuxu

Pokud jste aktivním uživatelem jazyka Python a nedávno jste přešli na operační systém Ubuntu 23.04 nebo Fedoru 38, je dost pravděpodobné, že jste se při instalaci balíčků pomocí správce Pythonu pip setkali s chybovým hlášením „externally-managed-environment“.

Tento problém může být frustrující a poměrně překvapivý, jelikož se v minulých verzích Ubuntu, Fedory a dalších distribucích nevyskytoval. Pojďme se podívat, co přesně tuto chybu vyvolává a jak ji můžete rychle vyřešit.

Proč se zobrazuje chyba „externě spravovaného prostředí“?

Nejnovější verze linuxových distribucí se řídí standardy definovanými v dokumentu PEP-668. Tyto změny mají za cíl zajistit, aby balíčky instalované pomocí pip nebyly ve výchozím nastavení ukládány do globálního prostředí.

Toto opatření bylo zavedeno, aby se předešlo konfliktům mezi správcem balíčků dané distribuce a nástroji pro správu balíčků specifickými pro Python. Více informací naleznete v oficiální dokumentaci PEP-668. Pokud chcete tento mechanismus deaktivovat, můžete využít jeden ze tří níže uvedených postupů.

1. Odstranění souboru „EXTERNALLY-MANAGED“

Toto je nejjednodušší způsob, jak se zbavit chyby „externally-managed“. Stačí přejít do adresáře /usr/lib/python3.xx (kde xx je číslo verze Pythonu) a odstranit soubor s názvem EXTERNALLY-MANAGED. Následující příkazy to provedou za vás:

 cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED

To je vše. Pokud byste chtěli tuto funkci znovu aktivovat, vytvořte tentýž soubor pomocí příkazu touch:

 sudo touch EXTERNALLY-MANAGED 

Nyní by měla být instalace balíčků pomocí pip nebo pip3 bezproblémová.

2. Využití virtuálních prostředí pro instalaci balíčků pip

Další možností je používání virtuálních prostředí pro vaše Python projekty. Virtuální prostředí představují efektivní způsob, jak izolovat balíčky specifické pro daný program od operačního systému a zároveň udržovat projekt přehledně uspořádaný.

Zde je postup, jak vytvořit virtuální prostředí a instalovat balíčky pomocí pip:

  • Nejprve vytvořte virtuální prostředí použitím příkazu:
     python3 -m venv venv 
  • Následně aktivujte prostředí pomocí příkazu source, který spustí aktivační skript v adresáři bin:
     source venv/bin/activate 
  • Váš shell by se měl aktualizovat a zobrazovat název aktuálního virtuálního prostředí. Nyní můžete bez problémů instalovat jakékoliv balíčky Pythonu.

    Jak vidíte, balíček openai Python nebylo možné zpočátku nainstalovat, ale po vytvoření a aktivaci virtuálního prostředí se instalace provedla bez problémů.

    3. Použití nástroje pipx k instalaci Python balíčků

    pipx je nástroj určený k instalaci Python balíčků do izolovaných virtuálních prostředí. Automatizuje vytváření virtuálních prostředí pro každý balíček a vytváří symbolické odkazy v adresáři .local/bin, což umožňuje volat nainstalované balíčky z libovolného místa v shellu.

    Použitím pipx se vyhnete chybové hlášce „externally-managed-environment“ při instalaci balíčků do virtuálních prostředí. Pro instalaci pipx použijte výchozí správce balíčků vaší distribuce.

    Na systémech Ubuntu/Debian:

     sudo apt-get install pipx 

    Na Arch systémech:

     sudo pacman -S pipx 

    Na Fedora/CentOS/RHEL:

     sudo dnf install pipx 

    Po instalaci pipx ho používejte podobně jako pip. Následuje ukázkový příkaz:

     pipx install openai 

    Více informací o nástroji pipx můžete najít v manuálové stránce pomocí příkazu man.

    Nyní už víte, jak odstranit chybu „externě spravovaného prostředí“

    Po vyřešení chyby „externally-managed-environment“ můžete nerušeně pokračovat ve svém projektu nebo obecně v procvičování programování v Pythonu. Pokud se zaměřujete na to druhé, možná by vás mohly zaujmout různé gamifikované platformy pro výuku programování, které vám pomohou se naučit Python nebo jakýkoli jiný jazyk interaktivní a poutavou formou.

    Jan Novák
    Autor
    Czechia

    Redaktor zaměřený na Windows, produktivitu a cloudové nástroje.

    Předchozí článek
    33 zajímavých faktů z YouTube, o kterých možná nevíte
    Další článek
    Jak používat nástroj Editor ve Fotkách Google pro web