Inzicht in virtuele omgevingen in Python

In deze tutorial leert u over virtuele omgevingen. U leert over het belang van het gebruik van virtuele omgevingen in Python en hoe u aan de slag kunt gaan met het gebruik van virtuele omgevingen.

Wat is een virtuele omgeving?

Een virtuele omgeving is een hulpmiddel om afzonderlijke ruimte te behouden voor een project met zijn afhankelijkheden en bibliotheken op één plaats. Deze omgeving is specifiek voor het specifieke project en interfereert niet met de afhankelijkheden van andere projecten. 

U kunt bijvoorbeeld werken aan project X dat versie 1.0 van bibliotheek Z gebruikt en ook het project Y bijhouden dat versie 2.0 van bibliotheek Z gebruikt.

Hoe werken virtuele omgevingen?

De virtuele omgevingstool maakt een map binnen de projectdirectory. Standaard wordt de map gebeld venv, maar u kunt het ook een eigen naam geven. Het houdt Python en pip uitvoerbare bestanden binnen de map met de virtuele omgeving. Wanneer de virtuele omgeving is geactiveerd, worden de pakketten die daarna zijn geïnstalleerd, geïnstalleerd in de projectspecifieke map met virtuele omgevingen.

Aan de slag met VirtualEnv

Zorg eerst dat je dat hebt gedaan Pip geïnstalleerd op uw systeem. U kunt installeren Pip met behulp van de volgende opdracht:

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

Gebruik makend van Pip, installeer de virtuele omgevingstool.

pip install virtualenv

Om te beginnen met het gebruik virtualenv, je moet het initialiseren en activeren. Laten we beginnen met het maken van een nieuwe Python-projectdirectory PythonApp.

mkdir PythonApp

Navigeer naar de projectdirectory PythonApp en initialiseer de virtuele omgeving door de volgende opdracht te typen:

virtualenv PythonAppVenv

Met de opdracht hierboven wordt de virtuele omgeving voor het project ingesteld PythonApp.

Het maakt een map genaamd PythonAppVenv in de projectdirectory PythonApp. Het houdt de uitvoerbare bestanden Python en pip in de map met virtuele omgevingen. Alle nieuwe pakketten die na activering van de virtuele omgeving voor het project zijn geïnstalleerd, worden in de map met virtuele omgevingen geplaatst. Hier is de mappenstructuur:

Als u wilt beginnen met het gebruik van de virtuele omgeving, moet u deze activeren met de volgende opdracht:

bron PythonAppVenv / bin / activate

Eenmaal geactiveerd, zou u de PythonAppVenv naam aan de linkerkant van de naamprompt.

Laten we proberen een nieuw pakket voor het project te installeren PythonApp.

pip-installatiekolf

Het nieuwe pakket moet worden geïnstalleerd in de map met virtuele omgevingen. Controleer de map met de virtuele omgeving binnenin lib / python2.7 / site-packages en je zou in staat moeten zijn om de nieuw geïnstalleerde te vinden fles pakket. Je kunt meer over Flask te weten komen op de projectpagina.

Als u klaar bent met de virtuele omgeving, kunt u deze deactiveren met behulp van de volgende opdracht:

deactiveren 

Gemakkelijker om pakketten te volgen

Tijdens het werken met Python-programma's installeert u verschillende pakketten die door het programma worden vereist. U blijft werken en de lijst met geïnstalleerde pakketten blijft zich opstapelen. Nu komt de tijd dat u de Python-code naar de productieserver moet verzenden. Oeps ... Je weet echt niet welke pakketten je hebt geïnstalleerd om het programma te laten werken. 

Het enige wat u kunt doen is het Python-programma openen en alle pakketten controleren die u in uw programma hebt geïmporteerd en ze een voor een installeren.

Een virtuele omgeving biedt een gemakkelijkere methode om bij te houden welke pakketten in het project zijn geïnstalleerd. Nadat u de virtuele omgeving hebt geactiveerd, biedt deze de mogelijkheid om de huidige status van de omgevingspakketten te bevriezen.

U kunt dit bereiken met behulp van de volgende opdracht:

pip freeze> requirements.txt

De bovenstaande opdracht maakt een bestand met de naam requirements.txt met details over de pakketten met versies in de huidige omgeving. Hier is hoe het eruit ziet:

Nu zou dit bestand echt nuttig zijn voor de implementatie van het project op een ander platform, omdat alle afhankelijkheden van het project al beschikbaar zijn in de requirements.txt het dossier. Om de projectafhankelijkheden te installeren met behulp van de requirements.txt bestand, voert u de volgende opdracht uit:

pip install -r requirements.txt

virtualenvwrapper Dingen eenvoudiger maken

De virtualenv tool is echt een zegen voor ontwikkelaars. Maar het wordt echt ingewikkeld als je met meer dan één virtuele omgeving te maken hebt. Om meerdere virtuele omgevingen te beheren, is er een uitbreiding op de virtualenv tool genoemd virtualenvwrapper

virtualenvwrapper is een verpakking om de virtualenv tool die de functionaliteit biedt om meerdere virtuele omgevingen te beheren.

Laten we aan de slag gaan met installeren virtualenvwrapper met behulp van pip.

pip install virtualenvwrapper

Als je eenmaal hebt geïnstalleerd virtualenvwrapper, u moet de werkdirectory instellen waar de virtuele omgevingen worden opgeslagen. Voer de volgende opdracht uit om de werkdirectory in te stellen virtualenvwrapper:

exporteren WORKON_HOME = .virtualenvs

Met de opdracht hierboven wordt de werkmap ingesteld virtualenvwrapper naar de .virtualenvs map in de basismap.

U kunt het virtualenvwrapper opdrachten om vanaf de terminal uit te voeren of de virtualenvwrapper opdrachten voor de .bashrc.

bron /usr/local/bin/virtualenvwrapper.sh

Nu zijn de commando's toegankelijk in de huidige terminal door op te drukken tab sleutel. Maak een nieuwe projectmap met de naam PythonProject. Navigeer naar de projectdirectory. Vroeger, toen je het gebruikte virtualenv, je hebt eerst de virtuele omgeving gemaakt en vervolgens geactiveerd. Gebruik makend van virtualenvwrapper, je kunt beide taken voltooien met een enkele opdracht.

mkvirtualenv PythonVenv 

Met de opdracht hierboven wordt de virtuele omgeving gemaakt en vervolgens geactiveerd. 

Om de virtuele omgeving te deactiveren, moet u de deactiveren commando.

deactiveren

Stel nu dat je in bepaalde scenario's moet schakelen tussen de verschillende virtuele omgevingen waarin je werkt. virtualenvwrapper verschaft een werken aan methode om van virtuele omgeving te veranderen. Het commando om van virtuele omgeving te veranderen is: 

werk aan PythonV

In het bovenstaande commando, PythonV is de naam van de virtuele omgeving. Hier is een afbeelding waar de werken aan commando wordt getoond in actie:

virtualenvwrapper biedt ook een opdracht voor het weergeven van de virtuele omgevingen in uw omgeving.

ls $ WORKON_HOME

De bovenstaande opdracht geeft een lijst met virtuele omgevingen weer die in de omgeving aanwezig zijn.

Om een ​​bestaande virtuele omgeving te verwijderen, kunt u de rmvirtualenv commando.

rmvirtualenv PV

Er is een opdracht die een projectdirectory en de bijbehorende virtuele omgeving maakt. Navigeer naar de terminal en voer de volgende opdracht uit:

mkproject NewPro

De bovenstaande opdracht moet het project en de bijbehorende virtuele omgeving creëren.

Er zijn nog een paar commando's waar je in kunt gebruiken virtualenvwrapper. U kunt de lijst met beschikbare opdrachten vinden door de volgende opdracht te typen:

virtualenvwrapper

Inpakken

In deze tutorial zag je hoe je moest beginnen met het gebruik van virtuele omgevingen in Python. Je leerde het belang van het gebruik van de virtuele omgeving en hoe het werkt. Je hebt ook een kijkje genomen virtualenvwrapper, een wikkel in de virtualenv tool voor het beheren van meerdere virtuele omgevingen.

Heb je ooit virtuele omgevingen gebruikt in Python? Laat het ons weten in de reacties hieronder.