Jak naprawić błąd pip „zewnętrznie zarządzane środowisko” w systemie Linux

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:

  • Najpierw utwórz środowisko wirtualne za pomocą:
     python3 -m venv venv 
  • Źródło pliku aktywacyjnego w katalogu bin za pomocą polecenia source:
     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.