Cum să remediați eroarea pip „mediu gestionat extern” pe Linux

Dacă lucrați frecvent cu Python și ați trecut recent la Ubuntu 23.04 sau Fedora versiunea 38, sunt șanse să întâlniți eroarea „mediu gestionat extern” atunci când instalați pachete cu managerul de pachete Python, pip.

Acest lucru ar putea fi frustrant și destul de surprinzător, deoarece această eroare nu va apărea niciodată în versiunile mai vechi de Ubuntu, Fedora și alte distribuții. Să aflăm ce cauzează exact această eroare și cum o poți remedia rapid.

De ce apare eroarea „mediu-gestionat-extern”.

Cele mai recente versiuni ale tuturor distribuțiilor Linux adoptă standardele definite în PEP-668. Aceste modificări asigură că pachetele pip nu vor fi instalate implicit într-un context global.

Acest lucru a fost implementat în încercarea de a evita conflictul între managerul de pachete al distribuției și instrumentele de gestionare a pachetelor Python. Puteți afla despre detalii în documentația oficială PEP-668. Dacă doriți să reveniți sau să anulați acest mecanism, puteți lua trei abordări.

1. Ștergeți fișierul „GESTIONAT EXTERN”.

Aceasta este cea mai simplă remediere a erorii pip „gestionate extern”. Tot ce trebuie să faceți este să navigați la /usr/lib/python3.xx și să ștergeți fișierul GESTIONAT EXTERN din director. Iată comenzile pentru a face acest lucru:

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

Asta este tot ce trebuie să faci pentru a remedia eroarea. Dacă alegeți să restaurați acest mecanism, creați din nou același fișier cu comanda tactilă:

 sudo touch EXTERNALLY-MANAGED 

Acum ar trebui să puteți instala pachetele fără probleme cu pip sau pip3.

  Cum să omorâți programele din terminal în Linux

2. Utilizați medii virtuale pentru a instala pachetele pip

O altă abordare pe care o puteți lua este utilizarea mediilor virtuale pentru proiectul dvs. Python. Mediile virtuale sunt o modalitate excelentă de a izola pachetele specifice programului de sistemul de operare și, de asemenea, vă permit să vă organizați bine proiectul.

Iată cum să creați un mediu virtual și să instalați pachete cu pip:

  • Mai întâi, creați mediul virtual cu:
     python3 -m venv venv 
  • Sursă fișierul de activare din directorul bin folosind comanda sursă:
     source venv/bin/activate 
  • Promptul dvs. shell ar trebui să fie actualizat cu numele mediului virtual. Acum veți putea instala orice pachet Python dorit.

    După cum puteți vedea, pachetul openai Python nu a putut fi instalat la început, dar după crearea și trecerea la un mediu virtual, se instalează impecabil.

    3. Utilizați pipx pentru a instala pachetele Python

    pipx este un utilitar pentru instalarea pachetelor Python în medii virtuale și izolate. Automatizează pași precum crearea de medii virtuale pentru fiecare pachet și crearea de legături simbolice către pachetele din folderul .local/bin, astfel încât să poți apela fiecare pachet din shell în orice moment.

    Utilizarea pipx pentru a instala pachete vă ajută să evitați eroarea „mediu gestionat extern”, deoarece instalează pachete în medii virtuale. Pentru a utiliza pipx, mai întâi, instalați-l cu managerul de pachete implicit al distribuției dvs.

    Pe derivatele Ubuntu/Debian:

     sudo apt-get install pipx 

    Pe sisteme bazate pe Arch:

     sudo pacman -S pipx 

    Pe Fedora/CentOS/RHEL:

     sudo dnf install pipx 

    Odată ce ați instalat pipx, utilizați-l așa cum ați folosi pip pentru a instala pachete. Iată un exemplu de comandă:

     pipx install openai 

    Pentru a afla mai multe despre pipx, puteți consulta pagina sa de manual folosind comanda man.

      6 Utilitar Linux pentru a testa conexiunea la rețea

    Acum știți cum să remediați eroarea „gestionată extern”.

    După remedierea erorii „mediu gestionat extern”, ar trebui să puteți continua să lucrați la proiectul dvs. sau să practicați programarea generală Python. Dacă vă concentrați pe acesta din urmă, poate doriți să verificați diferitele moduri gamificate de a învăța programarea care vă vor ajuta să învățați Python sau orice limbaj mult mai rapid într-un mod practic și plin de satisfacții.