Jeśli często pracujesz z Pythonem i niedawno przeszedłeś na Ubuntu 23.04 lub Fedorę w wersji 38, prawdopodobnie natrafiłeś na błąd „zewnętrznie zarządzanego środowiska” podczas instalowania pakietów za pomocą menedżera pakietów Pythona, pip.
Może to być frustrujące i dość zaskakujące, ponieważ ten błąd nigdy nie pojawiałby się w starszych wersjach Ubuntu, Fedory i innych dystrybucjach. Dowiedzmy się, co dokładnie powoduje ten błąd i jak można go szybko naprawić.
Dlaczego pojawia się błąd „środowiska zarządzanego zewnętrznie”.
Najnowsze wersje wszystkich dystrybucji Linuksa przyjmują standardy określone w PEP-668. Zmiany te zapewniają, że pakiety pip nie będą domyślnie instalowane w kontekście globalnym.
Zostało to zaimplementowane, aby uniknąć konfliktu między menedżerem pakietów dystrybucji a narzędziami do zarządzania pakietami w języku Python. O szczegółach można dowiedzieć się w oficjalna dokumentacja PEP-668. Jeśli chcesz cofnąć lub zastąpić ten mechanizm, możesz zastosować trzy podejścia.
1. Usuń plik „ZARZĄDZANE ZEWNĘTRZNIE”.
Jest to najprostsza poprawka błędu „zewnętrznie zarządzanego” pip. Wszystko, co musisz zrobić, to przejść do /usr/lib/python3.xx i usunąć plik EXTERNALLY-MANAGED w katalogu. Oto polecenia, które to umożliwiają:
cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED
To wszystko, co musisz zrobić, aby naprawić błąd. Jeśli zdecydujesz się przywrócić ten mechanizm, utwórz ponownie ten sam plik za pomocą polecenia touch:
sudo touch EXTERNALLY-MANAGED
Teraz powinieneś móc bezproblemowo instalować pakiety za pomocą pip lub pip3.
2. Użyj środowisk wirtualnych, aby zainstalować pakiety pip
Innym podejściem, które możesz zastosować, jest użycie środowisk wirtualnych w projekcie Python. Środowiska wirtualne to świetny sposób na odizolowanie pakietów specyficznych dla programu od systemu operacyjnego, a także pozwalają na uporządkowaną organizację projektu.
Oto jak utworzyć środowisko wirtualne i zainstalować pakiety za pomocą pip:
python3 -m venv venv
source venv/bin/activate
Monit powłoki powinien zostać zaktualizowany o nazwę środowiska wirtualnego. Teraz będziesz mógł zainstalować dowolne pakiety Pythona.
Jak widać, początkowo nie można było zainstalować pakietu openai Python, ale po utworzeniu i przejściu do środowiska wirtualnego został on zainstalowany bezbłędnie.
3. Użyj pipx, aby zainstalować pakiety Pythona
pipx to narzędzie do instalowania pakietów Pythona w środowiskach wirtualnych i izolowanych. Automatyzuje takie kroki, jak tworzenie wirtualnych środowisk dla każdego pakietu i tworzenie dowiązań symbolicznych do pakietów w folderze .local/bin, dzięki czemu możesz w każdej chwili wywołać każdy pakiet z powłoki.
Używanie pipx do instalowania pakietów pomaga uniknąć błędu „zewnętrznie zarządzanego środowiska” podczas instalowania pakietów w środowiskach wirtualnych. Aby użyć pipx, najpierw zainstaluj go z domyślnym menedżerem pakietów swojej dystrybucji.
W pochodnych Ubuntu/Debian:
sudo apt-get install pipx
W systemach opartych na Arch:
sudo pacman -S pipx
W Fedorze/CentOS/RHEL:
sudo dnf install pipx
Po zainstalowaniu pipx użyj go tak, jak używasz pip do instalowania pakietów. Oto przykładowe polecenie:
pipx install openai
Aby dowiedzieć się więcej o pipx, możesz odwołać się do jego strony podręcznika za pomocą polecenia man.
Teraz wiesz, jak naprawić błąd „zarządzany zewnętrznie”.
Po naprawieniu błędu „zewnętrznie zarządzanego środowiska” powinieneś móc kontynuować pracę nad projektem lub ćwiczyć ogólne programowanie w Pythonie. Jeśli koncentrujesz się na tym drugim, możesz wypróbować różne sposoby nauki programowania oparte na grach, które pomogą Ci nauczyć się Pythona lub dowolnego innego języka znacznie szybciej, w praktyczny i satysfakcjonujący sposób.