A pip „külsőleg felügyelt környezet” hiba kijavítása Linuxon

Ha gyakran dolgozik Pythonnal, és a közelmúltban az Ubuntu 23.04-re vagy a Fedora 38-as verziójára váltott, akkor valószínűleg a Python csomagkezelővel (pip) telepített csomagok „külsőleg felügyelt környezet” hibájára bukkant.

Ez frusztráló és meglehetősen meglepő lehet, mivel ez a hiba soha nem jelenik meg az Ubuntu, Fedora és más disztribúciók régebbi verzióiban. Nézzük meg, mi okozza pontosan ezt a hibát, és hogyan javíthatja ki gyorsan.

Miért fordul elő a „külsőleg kezelt környezet” hiba?

Az összes Linux disztribúció legújabb verziója átveszi a PEP-668 szabványban meghatározott szabványokat. Ezek a változtatások biztosítják, hogy a pip csomagok alapértelmezés szerint ne legyenek globális környezetben telepítve.

  10 különböző típusú DDoS támadás és azok megelőzése

Ez azért történt, hogy elkerüljük a disztribúció csomagkezelője és a Python csomagkezelő eszközei közötti ütközést. A részletekről a hivatalos PEP-668 dokumentáció. Ha vissza akarja állítani vagy felül akarja írni ezt a mechanizmust, három megközelítést választhat.

1. Törölje az „EXTERNALLY-MANAGED” fájlt

Ez a pip „külsőleg kezelt” hiba legegyszerűbb javítása. Mindössze annyit kell tennie, hogy navigálnia kell a /usr/lib/python3.xx mappába, és törölnie kell a KÜLSŐL KEZELT fájlt a könyvtárból. Itt vannak az ehhez szükséges parancsok:

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

Csak ennyit kell tennie a hiba kijavításához. Ha úgy dönt, hogy visszaállítja ezt a mechanizmust, hozza létre újra ugyanazt a fájlt a touch paranccsal:

 sudo touch EXTERNALLY-MANAGED 

Most már zökkenőmentesen telepítheti a csomagokat a pip vagy a pip3 segítségével.

  Hogyan írjunk üzleti ajánlatot [W/ Tips & Templates]

2. Használjon Virtuális környezeteket a pip csomagok telepítéséhez

Egy másik lehetséges megközelítés a virtuális környezetek használata a Python-projekthez. A virtuális környezetek nagyszerű lehetőséget kínálnak a programspecifikus csomagok elválasztására az operációs rendszertől, és lehetővé teszik a projekt rendezett szervezését is.

Így hozhat létre virtuális környezetet és telepíthet csomagokat pip segítségével:

  • Először hozza létre a virtuális környezetet a következőkkel:
     python3 -m venv venv 
  • Forrásolja az aktiváló fájlt a bin könyvtárban a forrás paranccsal:
     source venv/bin/activate 
  • A shell promptot frissíteni kell a virtuális környezet nevével. Mostantól tetszőleges Python-csomagokat telepíthet.

    Amint látható, az openai Python csomagot először nem lehetett telepíteni, de miután létrehoztuk és virtuális környezetre váltunk, hibátlanul települ.

    3. Használja a pipxet a Python-csomagok telepítéséhez

    A pipx egy segédprogram Python-csomagok virtuális és izolált környezetekben történő telepítéséhez. Automatizálja az olyan lépéseket, mint például virtuális környezetek létrehozása az egyes csomagokhoz és szimbolikus hivatkozások létrehozása a .local/bin mappában lévő csomagokhoz, így minden csomagot bármikor meghívhat a héjból.

      Hogyan készíts jobb fényképeket a fényképezőgép élő nézetével

    A pipx használata a csomagok telepítéséhez segít elkerülni a „külsőleg felügyelt környezet” hibát, amikor a csomagokat virtuális környezetbe telepíti. A pipx használatához először telepítse a disztribúció alapértelmezett csomagkezelőjével.

    Ubuntu/Debian származékokon:

     sudo apt-get install pipx 

    Arch alapú rendszereken:

     sudo pacman -S pipx 

    Fedora/CentOS/RHEL rendszeren:

     sudo dnf install pipx 

    A pipx telepítése után ugyanúgy használja, mint a pip-et a csomagok telepítéséhez. Íme egy példa parancs:

     pipx install openai 

    Ha többet szeretne megtudni a pipx-ről, tekintse meg annak man oldalát a man paranccsal.

    Most már tudja, hogyan javíthatja ki a „külsőleg kezelt” hibát

    A „külsőleg felügyelt környezet” hiba kijavítása után folytathatja a munkát a projekten vagy gyakorolhatja az általános Python programozást. Ha az utóbbira koncentrál, érdemes lehet kipróbálnia a programozás tanulásának különféle játékmódjait, amelyek segítenek a Python vagy bármely más nyelv sokkal gyorsabb, gyakorlatias és kifizetődő elsajátításában.