Решавање грешке „споља управљано окружење“ у Python-у на Linux-у
Уколико често користите Python и недавно сте надоградили на Ubuntu 23.04 или Fedora 38, вероватно сте наишли на поруку о грешци „externally-managed-environment“ када покушавате да инсталирате пакете помоћу pip-а, Python-овог менаџера пакета.
Ова грешка може бити врло фрустрирајућа, посебно зато што се није јављала у претходним верзијама Ubuntu-а, Fedora-е и других дистрибуција. Хајде да разјаснимо шта изазива ову грешку и како је брзо можете отклонити.
Зашто се појављује грешка „споља управљано окружење“?
Најновије верзије Linux дистрибуција су усвојиле стандарде дефинисане у PEP-668. Ове промене подразумевају да се pip пакети не инсталирају у глобални контекст по дифолту.
Ово је учињено како би се избегли конфликти између системског менаџера пакета и Python алата за управљање пакетима. Више детаља можете пронаћи у званичној PEP-668 документацији. Уколико желите да заобиђете или поништите овај механизам, постоје три начина за то.
1. Брисање датотеке „EXTERNALLY-MANAGED“
Ово је најједноставнији начин да се реши проблем са грешком „споља управљано“. Потребно је само да одете у директоријум `/usr/lib/python3.xx` и избришете датотеку `EXTERNALLY-MANAGED`. Ево команди за то:
cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED
Тиме сте решили проблем. Ако одлучите да повратите овај механизам, поново креирајте исту датотеку користећи команду `touch`:
sudo touch EXTERNALLY-MANAGED
Сада би требало да будете у могућности да инсталирате пакете помоћу `pip` или `pip3` без икаквих проблема.
2. Коришћење виртуелних окружења за инсталирање pip пакета
Други приступ је коришћење виртуелних окружења за ваше Python пројекте. Виртуелна окружења су одличан начин да изолујете пакете специфичне за пројекат од остатка система, а такође вам омогућавају да боље организујете свој рад.
Ево како да креирате виртуелно окружење и инсталирате пакете са pip-ом:
- Прво, креирајте виртуелно окружење са:
python3 -m venv venv
- Затим, активирајте га помоћу команде `source`:
source venv/bin/activate
Ваш терминал би требало да показује име виртуелног окружења. Сада можете инсталирати било који Python пакет.
Као што видите, пакет `openai` у почетку није могао да се инсталира, али након креирања и преласка на виртуелно окружење, инсталација је протекла без проблема.
3. Коришћење pipx-а за инсталацију Python пакета
pipx је алат за инсталирање Python пакета у виртуелна и изолована окружења. Он аутоматизује креирање виртуелног окружења за сваки пакет и прави симболичке везе до пакета у директоријуму `.local/bin`, омогућавајући вам да позивате пакете из терминала у било ком тренутку.
Коришћење pipx-а вам помаже да избегнете грешку „споља управљано окружење“ инсталирајући пакете у виртуелним окружењима. Да бисте користили pipx, прво га инсталирајте помоћу подразумеваног менаџера пакета ваше дистрибуције.
За Ubuntu/Debian системе:
sudo apt-get install pipx
За Arch системе:
sudo pacman -S pipx
За Fedora/CentOS/RHEL системе:
sudo dnf install pipx
Након инсталације pipx-а, можете га користити као `pip` за инсталирање пакета. Ево примера команде:
pipx install openai
Више информација о pipx-у можете пронаћи на његовој ман страници користећи команду `man`.
Сада знате како да решите грешку „споља управљано“
Након што решите грешку „споља управљано окружење“, требало би да будете у могућности да наставите са радом на пројекту или да вежбате Python програмирање. Уколико вам је фокус на другом, можете испробати неке од гејмификованих метода учења програмирања које могу помоћи да Python или било који други језик научите брже, на практичан и забаван начин.