Komme i gang med virtuelle miljøer i Python

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

Når du begynner å jobbe med flere prosjekter i ditt lokale utviklingsmiljø, vil du ofte støte på avhengighetsproblemer. Å lage virtuelle miljøer for hvert av prosjektene dine kan hjelpe deg med å administrere avhengigheter og prosjektkrav bedre.

For å utnytte fordelen med virtuelle miljøer i Python, la oss lære å lage og aktivere virtuelle miljøer. 👩🏽‍💻

Hva er virtuelle miljøer?

Virtuelle miljøer er isolerte og uavhengige miljøer som inneholder koden og avhengighetene til et prosjekt.

Men hvorfor skal du bruke virtuelle miljøer?

Vel, virtuelle miljøer lar deg installere og bruke forskjellige versjoner av de samme bibliotekene for forskjellige prosjekter. Bruk av virtuelle miljøer sikrer også at det ikke er noen brytende endringer når to eller flere prosjekter bruker forskjellige versjoner. La oss forstå dette mer detaljert.

Installere pakker i Python

Python-standardbiblioteket leveres med flere nyttige moduler for enhetstesting, samhandling med operativsystemet, arbeid med datoer og klokkeslett og mer.

Men når du jobber med Python-prosjekter, må du ofte installere andre pakker – utviklet av Python-fellesskapet. Dette gjelder spesielt for applikasjoner som nettskraping for datainnsamling, maskinlæring og nettapplikasjoner.

For å installere og administrere disse pakkene kan du bruke conda eller pip.

Hvert prosjekt krever et spesifikt sett med pakker som du må installere. Men når du installerer alle pakkene i utviklingsmiljøet på din lokale maskin, deler alle prosjektene de globalt installerte pakkene.

Så hvorfor er dette et problem?

Vel, du kan ha N-pakker i utviklingsmiljøet ditt. Prosjektet du jobber med for øyeblikket kan imidlertid bare kreve tre av dem. Når alle prosjektene dine deler felles installasjoner, er det svært vanskelig å identifisere hvilke av prosjektene som krevde hvilken av de installerte pakkene – avhengighetene knyttet til hvert prosjekt.

Det er en annen begrensning for denne tilnærmingen. Anta at du har et Django 2.2-prosjekt i prosjektbiblioteket ditt. Du bestemmer deg for å begynne å jobbe med et prosjekt som bruker Django 4. Så du installerer den nyeste versjonen av Django i samme utviklingsmiljø.

  8 beste 7 dager å dø Serverhosting for alle

Hva skjer med den eksisterende installasjonen?

Den fjernes og erstattes av versjonen av Django du installerte. Med nyere stabile utgivelser, kan enkelte funksjoner ha blitt utdatert. Og dine tidligere Django-prosjekter fungerer kanskje ikke som forventet.

Oppsummering av diskusjonen så langt: avhengighetsadministrasjon blir vanskelig når pakkene alle er installert i et felles miljø fordi prosjektene krever sitt eget sett med biblioteker for å kjøre.

Hvordan virtuelle miljøer fungerer

Så langt har vi sett utfordringene knyttet til å installere pakker i et globalt utviklingsmiljø (systemomfattende installasjoner). Dette motiverer oss til å forstå hvordan virtuelle miljøer håndterer denne begrensningen.

Når du oppretter og aktiverer et virtuelt miljø for Python-prosjektene dine, kan du bare installere de pakkene som kreves for det gjeldende prosjektet.

Ved å gå tilbake til eksemplet med Django-prosjekter, med virtuelle miljøer, kan du kjøre både Django 2.2- og Django 4-prosjekter – uten noen konflikt. Dette er fordi Django-installasjonene ikke lenger er systemomfattende installasjoner, men er begrenset til de virtuelle miljøene til de respektive prosjektene.

I hovedsak: virtuelle miljøer er isolerte miljøer som inneholder både koden og avhengighetene for et prosjekt.

Fordeler med virtuelle miljøer

Nå som du har lært hvordan virtuelle miljøer fungerer i Python, la oss telle opp fordelene ved å bruke dem:

  • Virtuelle miljøer gir et isolert utviklingsmiljø for individuelle prosjekter som lar oss installere bare pakkene som kreves for det spesifikke prosjektet.
  • Siden de virtuelle miljøene til prosjekter er både uavhengige og isolerte, kan forskjellige prosjekter bruke forskjellige versjoner av det samme biblioteket – avhengig av kravene. Med virtuelle miljøer trenger du ikke å bekymre deg for systemtillatelser for å installere biblioteker og sette opp utviklingsmiljøet.
  • Når du har installert pakker i et virtuelt miljø, kan du fange opp prosjektets avhengigheter i en requirements.txt-fil. Dette lar andre utviklere replikere prosjektets utvikling og miljø, og installere de nødvendige pakkene ved hjelp av en enkelt kommando.

Så langt har du lært hvordan virtuelle miljøer fungerer og fordelene ved å bruke dem. La oss utforske noen populære verktøy du kan bruke til å lage og administrere virtuelle miljøer i Python.

#1. Virtualenv

Virtualenv er et av de mye brukte verktøyene for å lage og administrere virtuelle miljøer for Python-prosjekter. Et undersett av funksjonaliteten til virtualenv er tilgjengelig i venv-pakken. Virtualenv-pakken er imidlertid raskere og utvidbar sammenlignet med venv.

  Fungerer Bitcoin/Crypto kraner? – Geekflare

#2. Pipenv

Med pipnev har du både den virtuelle miljøfunksjonaliteten til virtualenv og pakkeadministrasjonsfunksjonene til pip. Den bruker administrerer pipfiler for å administrere prosjektavhengigheter inne i et virtuelt miljø ved hjelp av.

Du kan prøve pipenv rett fra nettleseren på denne Pipenv-lekeplassen.

#3. Conda

Hvis du bruker Anaconda-distribusjonen til Python for utvikling, kan du bruke conda for pakkehåndtering og for å lage virtuelle miljøer.

For å lære mer, sjekk ut denne omfattende veiledningen for å administrere miljøer med conda.

#4. Poesi

Poetry er et pakkehåndteringsverktøy som lar deg administrere avhengigheter på tvers av alle Python-prosjekter. For å begynne å bruke Poetry, må du ha Python 3.7 eller en nyere versjon installert.

#5. Venv

Som nevnt tilbyr venv et undersett av funksjonaliteten til virtualenv, men det kommer med fordelen at det er innebygd i Python-standardbiblioteket, fra Python 3.3.

Den er lett tilgjengelig med Python-installasjonen – og krever ikke installasjon av eksterne pakker. Vi bruker den i denne opplæringen for å lage og jobbe med virtuelle miljøer. ✅

Hvordan lage et virtuelt Python-miljø i Ubuntu

💬 For å følge med på resten av denne opplæringen, må du ha en lokal installasjon av Python 3. Sørg for at du kjører Python 3.5 eller en nyere versjon.

Denne delen skisserer trinnene for å opprette og aktivere virtuelle miljøer i en Ubuntu Linux-maskin. De samme trinnene kan også brukes på andre Linux-distros.

For enklere administrasjon, la oss lage en prosjektkatalog og cd inn i den; Vi lager venv inne i denne katalogen.

$ mkdir my_project
$ cd my_project

Den generelle syntaksen for å lage et virtuelt miljø for Python-prosjektet ditt er python3 -m venv . Når du kjører denne kommandoen, vil et virtuelt miljø kalt my_env bli opprettet i gjeldende arbeidskatalog:

$ python3 -m venv my_env

Hvordan aktivere og installere pakker i et virtuelt miljø

Etter at du har opprettet det virtuelle miljøet, kan du aktivere det og installere nødvendige pakker i det. For å aktivere virtuelt miljø kan du kjøre følgende kommando:

$ source my_env/bin/activate

Når du har aktivert et virtuelt miljø, kan du kjøre kommandoen pip list for å få listen over installerte pakker:

$ pip list

Så langt har vi ikke installert noen pakke, så du bør kunne se oppsettverktøy og pip – installert som standard – i hvert av de opprettede virtuelle miljøene.

  5 Smarthome-enheter du ikke bør kjøpe

Installasjonen av pip inne i det virtuelle miljøet lar deg installere pakker som trengs for det spesifikke prosjektet; dette er grunnen til at du har et uavhengig utviklingsmiljø for hvert prosjekt.

Nå som du har aktivert det virtuelle miljøet, kan du installere prosjektspesifikke pakker i det ved å bruke pip. Som et eksempel, la oss installere Python-forespørsler, en av de mest nedlastede Python-pakkene, som gir flere nyttige funksjoner for å sende HTTP-forespørsler for arbeid med web-APIer.

$ pip install requests

Når du installerer forespørselsbiblioteket, vil du se at forespørselsbiblioteket blir installert sammen med alle pakkene som kreves av det.

$ pip list

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

$ pip freeze > requirements.txt

Hvis du undersøker innholdet i den gjeldende prosjektkatalogen, vil du se at requirements.txt-filen er opprettet.

$ ls
# my_env requirements.txt

Du kan deaktivere det virtuelle miljøet etter at du har jobbet med prosjektet ved å kjøre følgende kommando:

$ deactivate

Hvordan lage et virtuelt Python-miljø i Windows

Generelt foretrekkes et Linux-miljø for utvikling. Hvis du bruker en Windows-maskin, kan du vurdere å bruke Windows Subsystem for Linux (WSL) for å sette opp et Ubuntu-terminalmiljø for lokal utvikling.

Hvis du er på en Windows-maskin, kan du bruke enten Windows PowerShell eller ledeteksten og lage virtuelle miljøer ved å bruke følgende kommando:

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

Hvordan aktivere et virtuelt miljø

Aktivering av virtuelle miljøer på en Windows-maskin er forskjellig avhengig av om du jobber med ledeteksten eller Windows PowerShell.

Hvis du er på ledeteksten, kjør følgende kommando for å aktivere det virtuelle miljøet:

> <path-to-venv>Scriptsactivate.bat

Alternativt, hvis du bruker Windows PowerShell, vil denne kommandoen aktivere det virtuelle miljøet:

> <path-to-venv>ScriptsActivate.ps1

Du kan installere alle nødvendige pakker inne i det virtuelle miljøet.

For å deaktivere virtuelle miljøer kan du kjøre deaktiver-kommandoen – både på ledeteksten og Windows PowerShell.

Konklusjon

I denne artikkelen diskuterte vi begrensningene for systemomfattende installasjoner og hvordan de gjør avhengighetsadministrasjon på tvers av Python-prosjekter vanskelig. Virtuelle miljøer i Python gir en måte å administrere avhengigheter bedre samtidig som de gir et isolert utviklingsmiljø for individuelle prosjekter.

Blant de mye brukte verktøyene for å lage og administrere virtuelle miljøer i Python, har du lært hvordan du bruker venv – som er innebygd i Python-standardbiblioteket for å lage og aktivere virtuelle miljøer.

Inne i et prosjekts dedikerte virtuelle miljø kan versjoner av biblioteker som er spesifikke for et prosjekt, installeres. Disse kravene kan deretter fanges opp i en requirements.txt-fil, som lar andre utviklere enkelt replikere prosjektmiljøet.

Når du starter ditt neste Python-prosjekt, sørg for å bruke virtuelle miljøer for bedre avhengighetsstyring. Lykke til med kodingen!🎉