Pokud často pracujete s Pythonem a nedávno jste přešli na Ubuntu 23.04 nebo Fedoru verze 38, je pravděpodobné, že jste narazili na chybu „externally-managed-environment“ při instalaci balíčků pomocí správce balíčků Pythonu, pip.
To by mohlo být frustrující a docela překvapivé, protože tato chyba se nikdy neobjevila ve starších verzích Ubuntu, Fedory a dalších distribucí. Pojďme se dozvědět, co přesně tuto chybu způsobuje a jak ji můžete rychle opravit.
Table of Contents
Proč dochází k chybě „externě spravovaného prostředí“.
Nejnovější verze všech distribucí Linuxu přebírají standardy definované v PEP-668. Tyto změny zajišťují, že balíčky pip nebudou standardně instalovány v globálním kontextu.
Toto bylo implementováno ve snaze vyhnout se konfliktu mezi správcem balíčků distribuce a nástroji pro správu balíčků Pythonu. Podrobnosti se můžete dozvědět v oficiální dokumentace PEP-668. Pokud chcete tento mechanismus vrátit nebo potlačit, můžete použít tři přístupy.
1. Smažte soubor „EXTERNALLY-MANAGED“.
Toto je nejjednodušší oprava chyby „externě spravované“ pip. Jediné, co musíte udělat, je přejít do /usr/lib/python3.xx a odstranit soubor EXTERNALLY-MANAGED v adresáři. Zde jsou příkazy, jak to provést:
cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED
To je vše, co musíte udělat, abyste chybu napravili. Pokud se rozhodnete tento mechanismus obnovit, vytvořte stejný soubor znovu pomocí dotykového příkazu:
sudo touch EXTERNALLY-MANAGED
Nyní byste měli být schopni bez problémů nainstalovat balíčky pomocí pip nebo pip3.
2. K instalaci balíčků pip použijte virtuální prostředí
Dalším přístupem, který můžete použít, je použití virtuálních prostředí pro váš projekt Python. Virtuální prostředí jsou skvělým způsobem, jak izolovat balíčky specifické pro program od operačního systému a také vám umožňují úhledně organizovat váš projekt.
Zde je návod, jak vytvořit virtuální prostředí a nainstalovat balíčky pomocí pip:
python3 -m venv venv
source venv/bin/activate
Vaše výzva shellu by měla být aktualizována názvem virtuálního prostředí. Nyní budete moci nainstalovat libovolné balíčky Pythonu, které si přejete.
Jak můžete vidět, balíček openai Python nebylo možné nejprve nainstalovat, ale po vytvoření a přepnutí do virtuálního prostředí se nainstaluje bezchybně.
3. Použijte pipx k instalaci balíčků Pythonu
pipx je nástroj pro instalaci balíčků Pythonu ve virtuálních a izolovaných prostředích. Automatizuje kroky, jako je vytváření virtuálních prostředí pro každý balíček a vytváření symbolických odkazů na balíčky ve složce .local/bin, takže můžete každý balíček kdykoli volat z shellu.
Použití pipx k instalaci balíčků vám pomůže vyhnout se chybě „externally-managed-environment“ při instalaci balíčků do virtuálních prostředí. Chcete-li použít pipx, nejprve jej nainstalujte pomocí výchozího správce balíčků vaší distribuce.
Na derivátech Ubuntu/Debianu:
sudo apt-get install pipx
Na systémech založených na Arch:
sudo pacman -S pipx
Na Fedora/CentOS/RHEL:
sudo dnf install pipx
Jakmile nainstalujete pipx, použijte jej stejně jako pip k instalaci balíčků. Zde je ukázkový příkaz:
pipx install openai
Chcete-li se o pipx dozvědět více, můžete se podívat na jeho manuálovou stránku pomocí příkazu man.
Nyní víte, jak opravit chybu „externě spravované“.
Po opravě chyby „externally-managed-environment“ byste měli být schopni pokračovat v práci na svém projektu nebo v procvičování obecného programování v Pythonu. Pokud se zaměřujete na to druhé, možná budete chtít vyzkoušet různé gamifikované způsoby učení programování, které vám pomohou naučit se Python nebo jakýkoli jiný jazyk mnohem rychleji praktickým a přínosným způsobem.