Kom godt i gang med virtuelle miljøer i Python

I denne artikel lærer du, hvordan du kommer i gang med virtuelle miljøer i Python, i både Windows- og Linux-operativsystemer.

Når du begynder at arbejde på flere projekter i dit lokale udviklingsmiljø, vil du ofte løbe ind i afhængighedsproblemer. Oprettelse af virtuelle miljøer for hvert af dine projekter kan hjælpe dig med at administrere afhængigheder og projektkrav bedre.

For at udnytte fordelen ved virtuelle miljøer i Python, lad os lære at skabe og aktivere virtuelle miljøer. 👩🏽‍💻

Hvad er virtuelle miljøer?

Virtuelle miljøer er isolerede og uafhængige miljøer, der indeholder et projekts kode og afhængigheder.

Men hvorfor skal du bruge virtuelle miljøer?

Nå, virtuelle miljøer giver dig mulighed for at installere og bruge forskellige versioner af de samme biblioteker til forskellige projekter. Brugen af ​​virtuelle miljøer sikrer også, at der ikke er nogen brydende ændringer, når to eller flere projekter bruger forskellige versioner. Lad os forstå dette mere detaljeret.

Installation af pakker i Python

Python-standardbiblioteket leveres med flere nyttige moduler til enhedstestning, interaktion med operativsystemet, arbejde med datoer og klokkeslæt og mere.

Men når du arbejder med Python-projekter, bliver du ofte nødt til at installere andre pakker – udviklet af Python-fællesskabet. Dette gælder især for applikationer såsom web-skrabning til dataindsamling, maskinlæring og webapplikationer.

For at installere og administrere disse pakker kan du bruge conda eller pip.

Hvert projekt kræver et specifikt sæt pakker, som du skal installere. Men når du installerer alle pakkerne i dit udviklingsmiljø på din lokale maskine, deler alle projekterne de globalt installerede pakker.

Så hvorfor er dette et problem?

Nå, du har muligvis N pakker i dit udviklingsmiljø. Det projekt, du arbejder på i øjeblikket, kræver dog muligvis kun 3 af dem. Når alle dine projekter deler fælles installationer, er det meget svært at identificere, hvilke af projekterne, der krævede hvilken af ​​de installerede pakker – afhængighederne forbundet med hvert projekt.

Der er en anden begrænsning for denne tilgang. Antag, at du har et Django 2.2-projekt i dit projektbibliotek. Du beslutter dig for at begynde at arbejde på et projekt, der bruger Django 4. Så du installerer den seneste version af Django i det samme udviklingsmiljø.

  Escape From Tarkov Seneste kampagnekoder: Indløs nu

Hvad sker der med den eksisterende installation?

Den fjernes og erstattes af den version af Django, du har installeret. Med nyere stabile udgivelser kan visse funktioner være blevet forældet. Og dine tidligere Django-projekter fungerer muligvis ikke som forventet.

Opsummerer vores diskussion indtil videre: afhængighedsstyring bliver vanskelig, når pakkerne alle er installeret i et fælles miljø, fordi projekterne kræver deres eget sæt af biblioteker for at køre.

Sådan fungerer virtuelle miljøer

Indtil videre har vi set udfordringerne forbundet med at installere pakker i et globalt udviklingsmiljø (systemdækkende installationer). Dette motiverer os til at forstå, hvordan virtuelle miljøer håndterer denne begrænsning.

Når du opretter og aktiverer et virtuelt miljø til dine Python-projekter, kan du kun installere de pakker, der er nødvendige for det aktuelle projekt.

Ved at gense eksemplet med Django-projekter, med virtuelle miljøer, kan du få både Django 2.2- og Django 4-projekter til at køre – uden nogen konflikt. Dette skyldes, at Django-installationerne ikke længere er systemdækkende installationer, men er begrænset til de respektive projekters virtuelle miljøer.

I bund og grund: virtuelle miljøer er isolerede miljøer, der indeholder både koden og afhængighederne for et projekt.

Fordele ved virtuelle miljøer

Nu hvor du har lært, hvordan virtuelle miljøer fungerer i Python, lad os opregne fordelene ved at bruge dem:

  • Virtuelle miljøer giver et isoleret udviklingsmiljø for individuelle projekter, hvilket giver os mulighed for kun at installere de pakker, der er nødvendige for det specifikke projekt.
  • Da de virtuelle miljøer i projekter er både uafhængige og isolerede, kan forskellige projekter bruge forskellige versioner af det samme bibliotek – afhængigt af kravene. Med virtuelle miljøer behøver du ikke bekymre dig om systemtilladelser for at installere biblioteker og opsætte udviklingsmiljøet.
  • Når du har installeret pakker i et virtuelt miljø, kan du fange projektets afhængigheder i en requirements.txt-fil. Dette giver andre udviklere mulighed for at replikere projektets udvikling og miljø og installere de nødvendige pakker ved hjælp af en enkelt kommando.

Indtil videre har du lært, hvordan virtuelle miljøer fungerer og fordelene ved at bruge dem. Lad os udforske nogle populære værktøjer, du kan bruge til at oprette og administrere virtuelle miljøer i Python.

#1. Virtualenv

Virtualenv er et af de meget brugte værktøjer til at skabe og administrere virtuelle miljøer til Python-projekter. En delmængde af funktionaliteten af ​​virtualenv er tilgængelig i venv-pakken. Virtualenv-pakken er dog hurtigere og kan udvides sammenlignet med venv.

  Top 8 User Management Plugins til WordPress

#2. Pipenv

Med pipnev har du både virtualenvs virtuelle miljøfunktionalitet og pakkehåndteringsfunktionerne i pip. Den bruger administrerer pipfiler til at styre projektafhængigheder inde i et virtuelt miljø ved hjælp af.

Du kan prøve pipenv direkte fra browseren på denne Pipenv legeplads.

#3. Conda

Hvis du bruger Anaconda-distributionen af ​​Python til udvikling, så kan du bruge conda til pakkehåndtering og til at skabe virtuelle miljøer.

For at lære mere, tjek denne omfattende guide til administration af miljøer med conda.

#4. Poesi

Poetry er et pakkehåndteringsværktøj, der lader dig administrere afhængigheder på tværs af alle Python-projekter. For at begynde at bruge Poetry skal du have Python 3.7 eller en nyere version installeret.

#5. Venv

Som nævnt tilbyder venv en delmængde af funktionaliteten af ​​virtualenv, men det kommer med den fordel, at det er indbygget i Python-standardbiblioteket, startende fra Python 3.3.

Det er let tilgængeligt med Python-installationen – og kræver ikke installation af eksterne pakker. Vi bruger det i denne tutorial til at skabe og arbejde med virtuelle miljøer. ✅

Sådan opretter du et virtuelt Python-miljø i Ubuntu

💬 For at følge med i resten af ​​denne øvelse skal du have en lokal installation af Python 3. Sørg for, at du kører Python 3.5 eller en nyere version.

Dette afsnit skitserer trinene til at oprette og aktivere virtuelle miljøer i en Ubuntu Linux-maskine. De samme trin kan også bruges på andre Linux-distros.

For lettere administration, lad os oprette en projektmappe og cd ind i den; Vi opretter venv inde i denne mappe.

$ mkdir my_project
$ cd my_project

Den generelle syntaks til at skabe et virtuelt miljø til dit Python-projekt er python3 -m venv . Når du kører denne kommando, vil et virtuelt miljø kaldet my_env blive oprettet i den aktuelle arbejdsmappe:

$ python3 -m venv my_env

Sådan aktiveres og installeres pakker i et virtuelt miljø

Når du har oprettet det virtuelle miljø, kan du aktivere det og installere nødvendige pakker i det. For at aktivere virtuelt miljø kan du køre følgende kommando:

$ source my_env/bin/activate

Når du har aktiveret et virtuelt miljø, kan du køre kommandoen pip list for at få listen over installerede pakker:

$ pip list

Indtil videre har vi ikke installeret nogen pakke, så du burde være i stand til at se opsætningsværktøjer og pip – installeret som standard – i hvert af de oprettede virtuelle miljøer.

  Er uTorrent sikkert?

Installationen af ​​pip inde i det virtuelle miljø giver dig mulighed for at installere de nødvendige pakker til det specifikke projekt; derfor har du et selvstændigt udviklingsmiljø for hvert projekt.

Nu hvor du har aktiveret det virtuelle miljø, kan du installere projektspecifikke pakker i det ved hjælp af pip. Lad os som et eksempel installere Python-anmodninger, en af ​​de mest downloadede Python-pakker, som giver flere nyttige funktioner til at sende HTTP-anmodninger for at arbejde med web-API’er.

$ pip install requests

Når du installerer anmodningsbiblioteket, vil du se, at anmodningsbiblioteket bliver installeret sammen med alle de pakker, der kræves af det.

$ pip list

Du kan bruge kommandoen pip freeze og omdirigere outputtet til en requirements.txt-fil, som vist:

$ pip freeze > requirements.txt

Hvis du undersøger indholdet af den aktuelle projektmappe, vil du se, at filen requirements.txt er blevet oprettet.

$ ls
# my_env requirements.txt

Du kan deaktivere det virtuelle miljø, efter du har arbejdet på projektet, ved at køre følgende kommando:

$ deactivate

Sådan opretter du et virtuelt Python-miljø i Windows

Generelt foretrækkes et Linux-miljø til udvikling. Hvis du er på en Windows-maskine, kan du overveje at bruge Windows Subsystem for Linux (WSL) til at konfigurere et Ubuntu-terminalmiljø til lokal udvikling.

Hvis du er på en Windows-maskine, kan du bruge enten Windows PowerShell eller kommandoprompten og oprette virtuelle miljøer ved hjælp af følgende kommando:

> python -m venv <path-to-venv>

Sådan aktiveres et virtuelt miljø

Aktivering af virtuelle miljøer på en Windows-maskine er forskellig, afhængigt af om du arbejder på kommandoprompten eller Windows PowerShell.

Hvis du er på kommandoprompten, skal du køre følgende kommando for at aktivere det virtuelle miljø:

> <path-to-venv>Scriptsactivate.bat

Alternativt, hvis du bruger Windows PowerShell, vil kørsel af denne kommando aktivere det virtuelle miljø:

> <path-to-venv>ScriptsActivate.ps1

Du kan installere alle de nødvendige pakker inde i det virtuelle miljø.

For at deaktivere virtuelle miljøer kan du køre kommandoen deaktiver – både på kommandoprompten og Windows PowerShell.

Konklusion

I denne artikel diskuterede vi begrænsningerne ved systemdækkende installationer, og hvordan de gør afhængighedsstyring på tværs af Python-projekter vanskelig. Virtuelle miljøer i Python giver mulighed for bedre at administrere afhængigheder, mens de giver et isoleret udviklingsmiljø for individuelle projekter.

Blandt de meget brugte værktøjer til at skabe og administrere virtuelle miljøer i Python, har du lært, hvordan du bruger venv – som er indbygget i Python-standardbiblioteket til at skabe og aktivere virtuelle miljøer.

Inde i et projekts dedikerede virtuelle miljø kan versioner af biblioteker, der er specifikke for et projekt, installeres. Disse krav kan derefter indfanges i en requirement.txt-fil, som giver andre udviklere mulighed for nemt at replikere projektmiljøet.

Når du starter dit næste Python-projekt, skal du sørge for at bruge virtuelle miljøer til bedre afhængighedsstyring. God kodning!🎉