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:
python3 -m venv venv
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.