Förstå virtuella miljöer i Python

I den här handledningen lär du dig information om virtuella miljöer. Du lär dig om vikten av att använda virtuella miljöer i Python och hur du kommer igång med att använda virtuella miljöer.

Vad är en virtuell miljö?

En virtuell miljö är ett verktyg för att upprätthålla separat utrymme för ett projekt med dess beroenden och bibliotek på ett ställe. Denna miljö är specifik för det specifika projektet och stör inte andra beroendens beroenden. 

Till exempel kan du arbeta på projekt X som använder version 1.0 av biblioteket Z och också behåller projekt Y som använder version 2.0 av biblioteket Z.

Hur fungerar virtuella miljöer?

Det virtuella miljöverktyget skapar en mapp i projektkatalogen. Som standard kallas mappen venv, men du kan även namnge det också. Det håller Python och pip körbara filer inuti den virtuella miljömappen. När den virtuella miljön är aktiverad installeras de paket som installeras efter det i den projektspecifika virtuella miljömappen.

Komma igång med VirtualEnv

Först, se till att du har pip installerat på ditt system. Du kan installera pip använder följande kommando:

sudo apt-get install python-pip python-dev build-essential

Använder sig av pip, installera det virtuella miljöverktyget.

pip installera virtualenv

Att komma igång med att använda virtualenv, du måste initiera och aktivera den. Låt oss börja med att skapa en ny Python-projektkatalog PythonApp.

mkdir PythonApp

Navigera till projektkatalogen PythonApp och initiera den virtuella miljön genom att skriva följande kommando:

virtualenv PythonAppVenv

Ovanstående kommando kommer att ställa in den virtuella miljön för projektet PythonApp.

Det skapar en mapp som heter PythonAppVenv inuti projektkatalogen PythonApp. Den håller Python och pip körbara i mappen Virtuell miljö. Eventuella nya paket installerade för projektet efter virtuell miljöaktivering placeras i den virtuella miljömappen. Här är mappstrukturen:

För att komma igång med att använda den virtuella miljön måste du aktivera den med följande kommando:

källa PythonAppVenv / bin / aktivera

En gång aktiverad borde du kunna se PythonAppVenv namn på vänster sida av namnprompten.

Låt oss försöka installera ett nytt paket till projektet PythonApp.

pip-installationskolv

Det nya paketet ska installeras i den virtuella miljömappen. Kontrollera den virtuella miljömappen inuti lib / python2.7 / site-paket och du borde kunna hitta den nyligen installerade flaska paket. Du kan lära dig mer om Flask på projektsidan.

När du är klar med den virtuella miljön kan du avaktivera den med följande kommando:

avaktivera 

Lättare att spåra paket

När du arbetar med Python-program installerar du olika paket som krävs av programmet. Du fortsätter att arbeta, och listan över paket som installeras fortsätter att hälla upp. Nu kommer tiden när du behöver skicka Python-koden till produktionsservern. Oj ... Du vet verkligen inte vilka paket du har installerat för att programmet ska fungera. 

Allt du kan göra är att öppna Python-programmet och kontrollera alla paket som du har importerat i ditt program och installera dem en efter en.

En virtuell miljö ger en enklare metod för att hålla reda på de paket som installerats i projektet. När du har aktiverat den virtuella miljön ger den möjlighet att frysa det aktuella tillståndet för miljöpaketet.

Du kan uppnå detta genom att använda följande kommando:

pip frysa> requirements.txt

Ovanstående kommando skapar en fil som heter requirements.txt som har detaljer om paketen med versioner i den nuvarande miljön. Så här ser det ut:

Nu skulle den här filen vara till stor hjälp för att distribuera projektet på en annan plattform eftersom alla projektberoende redan finns till ditt förfogande i requirements.txt fil. För att installera projektberoende med hjälp av requirements.txt fil, kör följande kommando:

pip installera -r requirements.txt

virtualenvwrapper att göra saker enklare

De virtualenv Verktyget är verkligen en välsignelse för utvecklare. Men det blir väldigt komplicerat när du måste hantera mer än en virtuell miljö. För att hantera flera virtuella miljöer finns en förlängning till virtualenv verktyg som heter virtualenvwrapper

virtualenvwrapper är ett omslag runt virtualenv verktyg som ger funktionaliteten att hantera flera virtuella miljöer.

Låt oss börja med att installera virtualenvwrapper använder pip.

pip installera virtualenvwrapper

När du har installerat virtualenvwrapper, du måste ställa in arbetsboken där virtuella miljöer kommer att lagras. Utför följande kommando för att ställa in arbetsmappen för virtualenvwrapper:

exportera WORKON_HOME = .virtualenvs

Kommandot ovan anger arbetsboken för virtualenvwrapper till .virtualenvs mapp i hemkatalogen.

Du kan antingen källan till virtualenvwrapper kommandon för att springa från terminalen eller lägga till virtualenvwrapper kommandon till .bashrc.

källa /usr/local/bin/virtualenvwrapper.sh

Nu kommer kommandona att vara tillgängliga i den nuvarande terminalen genom att trycka på Flik nyckel. Skapa en ny projektmapp som heter PythonProject. Navigera till projektkatalogen. Tidigare när du använde virtualenv, du skapade först den virtuella miljön och aktiverade den sedan. Använder sig av virtualenvwrapper, Du kan slutföra båda dessa uppgifter med ett enda kommando.

mkvirtualenv PythonVenv 

Ovanstående kommando skapar den virtuella miljön och aktiverar sedan den. 

För att inaktivera den virtuella miljön måste du skriva in avaktivera kommando.

avaktivera

Antag nu att i vissa scenarier måste du växla mellan de olika virtuella miljöerna du arbetar med. virtualenvwrapper ger a jobba på Metod för att byta virtuella miljöer. Kommandot att byta den virtuella miljön är: 

Workon PythonV

I ovanstående kommando, PythonV är namnet på den virtuella miljön. Här är en bild där jobba på kommandot visas i åtgärd:

virtualenvwrapper ger också ett kommando för att lista de virtuella miljöerna i din miljö.

ls $ WORKON_HOME

Ovanstående kommando visar en lista över virtuella miljöer som finns i miljön.

För att ta bort en befintlig virtuell miljö kan du använda rmvirtualenv kommando.

rmvirtualenv PV

Det finns ett kommando som skapar en projektkatalog och dess associerade virtuella miljö. Navigera till terminalen och kör följande kommando:

mkproject NewPro

Ovanstående kommando ska skapa projektet och dess associerade virtuella miljö.

Det finns några fler kommandon som du kan använda i virtualenvwrapper. Du kan hitta listan med kommandon som är tillgängliga genom att skriva följande kommando:

virtualenvwrapper

Wrapping It Up

I den här handledningen såg du hur du började använda virtuella miljöer i Python. Du lärde dig vikten av att använda virtuell miljö och hur den fungerar. Du tittade också på virtualenvwrapper, ett omslag i virtualenv verktyg för hantering av flera virtuella miljöer.

Har du någonsin använt virtuella miljöer i Python? Låt oss veta dina tankar i kommentarerna nedan.