Python

Sådan oprettes og styres virtuelle Python-miljøer

Sådan oprettes og styres virtuelle Python-miljøer
Det er ret almindeligt at se Python-udviklere installere og opgradere pakker fra standard- og ikke-standardkilder for at udvikle applikationer. Årsagerne kan variere fra at bruge en nyere version af et modul til at bruge en bestemt version, hvis der er en regression.

Disse krav og brugssager kan være en smerte at håndtere, når forskellige applikationer kræver forskellige versioner af det samme bibliotek. Heldigvis giver Python en robust løsning til at isolere udviklingsmiljøer ved hjælp af virtuelle miljøer.

Hvad er et virtuelt Python-miljø?

Et virtuelt Python-miljø er et selvstændigt katalogtræ, der indeholder en bestemt Python-installation sammen med alle dens standardbiblioteker. Applikationer, der kræver en bestemt version af biblioteket, kan isoleres i disse virtuelle miljøer uden at forurene systemet eller andre Python-implementeringer. Hvert virtuelt miljø er en separat sandkasse, så du kan oprette så mange som virtuelle miljøer, du ønsker.

Oprettelse og styring af virtuelle miljøer

For at oprette virtuelle miljøer i Ubuntu skal du først installere den krævede afhængighedspakke ved at køre kommando:

$ sudo apt installere python3-venv

Du kan nu oprette virtuelle miljøer ved at køre kommando:

$ python3 -m venv myenv

Når du kører ovenstående kommando, oprettes et virtuelt miljø kaldet “myenv” i din hjemmekatalog. Hvis du vil bruge en anden version af Python, kan du erstatte "python3" ovenfor med fuld sti til placeringen af ​​din alternative Python-binære.

For at aktivere det brugerdefinerede miljø oprettet ovenfor skal du køre kommando:

$ kilde myenv / bin / aktiver

Når det virtuelle miljø er aktiveret, ændres shellprompt for at afspejle det aktuelle virtuelle miljø, du bruger. Hvis du kører “sys.sti ”-kommando inde i Python-tolk, kan du se, at det virtuelle miljø fungerer korrekt. Python vil nu se efter pakker i det brugerdefinerede miljø, du lige har oprettet.

Hvis din shellprompt ikke viser navnet på det virtuelle miljø som præfiks, bruger enhver Python-fil, du kører, system Python i stedet. Så det er nødvendigt at købe virtuelt miljø, før du kører en fil i dit brugerdefinerede miljø.

Du kan deaktivere et virtuelt miljø ved at køre kommando:

$ deaktiver

Hvert Python-virtuelt miljø inkluderer en “pyvenv.cfg ”-fil med en” include-system-site-packages-key ”-nøgle, der som standard er sat til" false ". Denne nøgle fortæller det virtuelle miljø, om der skal bruges system-site-pakker eller ej. Hvis det er indstillet til "sandt", vil Python i det virtuelle miljø se på systempakker, hvis en pakke ikke findes i det virtuelle miljø. Det gør også alle systeminstallerede pakker importerbare i det virtuelle miljø.

For at slette et virtuelt miljø skal du bare slette det virtuelle miljø-bibliotek, så er det væk.

Det er muligt at oprette og gemme virtualenv på eksterne USB-drev. Du skal have et USB-drev formateret i NTFS- eller EXT-filsystemet. FAT32-filsystemet understøtter ikke symlinks, hvilket er et krav for, at virtuelle miljøer fungerer.

Brug af Pip Package Manager til at installere pakker i det virtuelle miljø

Inde i et virtuelt miljø kan du bruge pip-pakkehåndtering til at installere, opgradere og afinstallere pakker. Det er muligt at nedgradere eller opgradere en pakke ved at angive et bestemt versionsnummer.

Du kan installere en pakke ved hjælp af pip ved at køre kommandoen (udskift pygame med det ønskede pakkenavn):

$ pip install pygame

Et søgbart lager af pip-pakker kan findes her.

For at afinstallere en pakke skal du bruge kommandoen:

$ pip afinstallere pygame

For at se alle versioner af en pakke skal du køre kommando:

$ pip install pygame ==

For at nedgradere eller opgradere til en bestemt version skal du bruge kommandoen (erstat “1.9.5 ”med dit ønskede versionsnummer):

$ pip install pygame == 1.9.5

For at opgradere en pakke til den nyeste version skal du køre kommando:

$ pip install - opgrader pygame

For at se alle pakker, der er installeret i et virtuelt miljø, skal du køre kommando:

$ pip-liste

For at gemme en liste over installerede pakker i virtualenv skal du køre kommando:

$ pip fryse> krav.txt

Du kan bruge ovenstående “krav.txt ”-fil for at installere pakker i løs vægt. En brugssag er at duplikere et eksisterende miljø ved at installere alle pakker fra bunden. For at installere pip-pakker i bulk skal du køre kommando:

$ pip installation -r krav.txt

Brug af virtuelle Python-miljøer med applikationer, der ikke er Python

Applikationer skrevet på andre programmeringssprog kan sandkasseres i virtuelle Python-miljøer, så længe pip eller en hvilken som helst anden Python-pakkehåndtering giver binære filer og pakker til disse alternative programmeringssprog / -rammer.

Her er et lille eksempel, der forklarer installation af Node.js i virtuelt Python-miljø. Kør følgende kommandoer en efter en:

$ python3 -m venv my_node_env
$ kilde my_node_env / bin / aktiver
$ pip installationshjul
$ pip installere nodeenv
$ nodeenv -p
$ nodeenv --version
$ node - version

Når du er færdig, har du en helt isoleret node.js miljø. Du kan oprette så mange virtuelle miljøer, som du vil, til forskellige node.js applikationer. Pakker installeret via npm pakkehåndtering er kun begrænset til aktiveret virtuelt miljø.

Konklusion

Oprettelse af et virtuelt Python-miljø er en glimrende måde at containerisere udviklingsmiljøer på. Hvert virtuelt miljø har sin egen Python-binær og sit eget uafhængige sæt pakker. Udvikling af flere Python-applikationer på det samme system kan hurtigt forurene dit hjem- og rodkatalog, og virtuelle miljøer gør det så nemt at vedligeholde dem.

Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...
Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...