Contents

Jak naprawić błąd pip "externally-managed-environment" w systemie Linux

Jeśli często pracujesz z Pythonem i niedawno przesiadłeś się na Ubuntu 23.04 lub Fedorę w wersji 38, prawdopodobnie natknąłeś się na błąd “externally-managed-environment” podczas instalowania pakietów za pomocą menedżera pakietów Pythona, pip.

Napotkanie problemu, który nie występował w poprzednich iteracjach systemów operacyjnych, takich jak Ubuntu i Fedora, może być źródłem frustracji. Zrozumienie pierwotnej przyczyny tego problemu i znalezienie szybkiego rozwiązania będzie kluczem do skutecznego rozwiązania sprawy.

Dlaczego pojawia się błąd “externally-managed-environment”

/pl/images/pip-externally-managed-error.jpeg

Najnowsze iteracje każdej dystrybucji Linuksa przyjęły specyfikacje nakreślone w PEP, co spowodowało zmianę zachowania instalacyjnego pakietów pip w taki sposób, że nie są one już domyślnie instalowane w zakresie globalnym.

Zostało to zaimplementowane w celu uniknięcia konfliktu między menedżerem pakietów dystrybucji a narzędziami do zarządzania pakietami Pythona. Szczegóły można znaleźć w oficjalnej dokumentacji PEP-668 . Jeśli chcesz przywrócić lub zastąpić ten mechanizm, możesz zastosować trzy podejścia.

Usunięcie pliku “EXTERNALLY-MANAGED”

/pl/images/deleting-externally-managed-file.jpeg

Aby rozwiązać problem zewnętrznie zarządzanego pakietu w bibliotece Pip, można wykonać prostą procedurę, przechodząc do katalogu znajdującego się pod adresem “/usr/lib/python3.xx” i usuwając plik “EXTERNALLY-MANAGED” w tym katalogu. Konkretne kroki do wykonania tego zadania obejmują wykonanie następujących poleceń:

 cd /usr/lib/python3.11
sudo rm EXTERNALLY-MANAGED 

Aby rozwiązać problem i przywrócić brakującą funkcjonalność, wykonaj następujące kroki:1. Użyj polecenia “touch”, aby zregenerować niezbędny plik konfiguracyjny. Można to zrobić, wpisując “touch /etc/systemd/system/multi-user.target.wants/sleep.override” w terminalu.2. Sprawdź, czy plik został pomyślnie utworzony, sprawdzając jego obecność za pomocą polecenia “ls -l /etc/systemd/system/multi-user.target.wants/”. Plik powinien być teraz wyświetlany jako zwykły plik z uprawnieniami do odczytu dla właściciela i grupy.

 sudo touch EXTERNALLY-MANAGED 

Proces instalacji przy użyciu pip lub pip3 powinien teraz przebiegać płynnie.

Wykorzystanie środowisk wirtualnych do instalacji pakietów pip

Alternatywna strategia polega na wykorzystaniu środowisk wirtualnych jako skutecznego sposobu na oddzielenie określonych zależności programistycznych od podstawowego systemu operacyjnego, jednocześnie ułatwiając uporządkowaną organizację projektu.

Aby utworzyć środowisko wirtualne i zainstalować pakiety za pomocą pip, wykonaj następujące kroki:

⭐ Najpierw utwórz środowisko wirtualne za pomocą:

 python3 -m venv venv 

⭐ Source the activate file inside the bin directory using the source command:

 source venv/bin/activate 

Aktualizacja wiersza powłoki z nazwą środowiska wirtualnego umożliwia zainstalowanie mnóstwa pakietów Pythona, które odpowiadają Twoim potrzebom, zwiększając w ten sposób doświadczenie programistyczne.

/pl/images/using-venv-solves-the-externally-managed-error.jpeg

Przy pierwszej próbie instalacja pakietu OpenAI Python napotkała trudności; jednak po utworzeniu i aktywacji środowiska wirtualnego proces instalacji został wykonany płynnie bez żadnych problemów.

Użyj pipx do instalacji pakietów Python

/pl/images/installing-packages-with-pix.jpeg

PipX służy jako wydajne narzędzie do wdrażania bibliotek Python w zwirtualizowanych lub sekwestrowanych ustawieniach, usprawniając procesy, takie jak tworzenie wirtualnych środowisk dostosowanych do poszczególnych pakietów i ustanawianie symbolicznych połączeń między tymi pakietami a odpowiadającymi im plikami binarnymi znajdującymi się w katalogu .local/bin użytkownika. Umożliwia to użytkownikom dostęp i korzystanie z dowolnego pakietu zainstalowanego za pośrednictwem PipX bezpośrednio z interfejsu wiersza poleceń przez cały czas.

Wykorzystanie pipx do instalacji pakietów oferuje rozwiązanie problemu błędów “externally-managed-environment” poprzez instalację pakietów w środowiskach wirtualnych. Aby wykorzystać pipx, należy rozpocząć od zainstalowania go za pomocą domyślnego menedżera pakietów systemu operacyjnego.

Na pochodnych Ubuntu/Debian:

 sudo apt-get install pipx 

Na systemach opartych na Arch:

 sudo pacman -S pipx 

Na Fedora/CentOS/RHEL:

 sudo dnf install pipx 

Po zainstalowaniu pipX można go używać w sposób analogiczny do używania pip do instalacji pakietów. Przykładem może być poniższe polecenie:

 pipx install openai 

Aby uzyskać więcej informacji na temat pipx, zaleca się zapoznanie się z jego stroną podręcznika za pomocą polecenia “man”.

Teraz wiesz, jak naprawić błąd “zarządzany zewnętrznie”

Po pomyślnym rozwiązaniu problemu związanego z zewnętrznie zarządzanym środowiskiem można wznowić pracę nad projektem lub zaangażować się w bardziej rozbudowane sesje ćwiczeniowe obejmujące wykorzystanie Pythona jako podstawowego języka programowania. Dla tych, którzy mają szersze cele obejmujące zarówno rozwój osobisty, jak i przyjemność, warto zbadać alternatywne podejścia do zdobywania biegłości w Pythonie lub innych językach za pomocą metod grywalizacji, które zapewniają wciągające i satysfakcjonujące doświadczenia poprzez włączenie elementów projektowania gier do procesu uczenia się.