Python

Virtuele Python-omgevingen maken en beheren

Virtuele Python-omgevingen maken en beheren
Het is vrij gebruikelijk dat Python-ontwikkelaars pakketten installeren en upgraden van standaard en niet-standaard bronnen om applicaties te ontwikkelen. Redenen kunnen variëren van het gebruik van een nieuwere versie van een module tot het gebruik van een specifieke versie voor het geval er een regressie is.

Deze vereisten en use-cases kunnen lastig zijn om te beheren wanneer verschillende applicaties verschillende versies van dezelfde bibliotheek vereisen. Gelukkig biedt Python een robuuste oplossing om ontwikkelomgevingen te isoleren met behulp van virtuele omgevingen.

Wat is een virtuele Python-omgeving??

Een virtuele Python-omgeving is een op zichzelf staande directorystructuur die een specifieke Python-installatie bevat samen met al zijn standaardbibliotheken. Toepassingen die een bepaalde versie van de bibliotheek vereisen, kunnen in deze virtuele omgevingen worden geïsoleerd zonder het systeem of andere Python-implementaties te vervuilen. Elke virtuele omgeving is een aparte sandbox, dus u kunt er zoveel virtuele omgevingen maken als u wilt.

Virtuele omgevingen maken en beheren

Om virtuele omgevingen in Ubuntu te maken, installeert u eerst het vereiste afhankelijkheidspakket door de opdracht uit te voeren:

$ sudo apt install python3-venv

U kunt nu virtuele omgevingen maken door de opdracht uit te voeren:

$ python3 -m venv myenv

Als u de bovenstaande opdracht uitvoert, wordt een virtuele omgeving met de naam "myenv" in uw thuismap gemaakt. Als u een andere versie van Python wilt gebruiken, kunt u "python3" hierboven vervangen door het volledige pad naar de locatie van uw alternatieve binaire Python-bestand.

Voer de opdracht uit om de hierboven gemaakte aangepaste omgeving te activeren:

$ bron mijnenv/bin/activeren

Zodra de virtuele omgeving is geactiveerd, verandert de shell-prompt om de huidige virtuele omgeving weer te geven die u gebruikt. Als u “sys.path"-opdracht in de Python-interpreter, kunt u zien dat de virtuele omgeving correct werkt. Python zoekt nu naar pakketten in de aangepaste omgeving die u zojuist hebt gemaakt.

Als uw shell-prompt de naam van de virtuele omgeving niet als voorvoegsel toont, zal elk Python-bestand dat u uitvoert in plaats daarvan systeem Python gebruiken. Het is dus noodzakelijk om een ​​virtuele omgeving te sourcen voordat u een bestand in uw aangepaste omgeving uitvoert.

U kunt een virtuele omgeving deactiveren door de opdracht uit te voeren:

$ deactiveren

Elke virtuele Python-omgeving bevat een "pyvenv.cfg" -bestand met een "include-system-site-packages" -sleutel die standaard is ingesteld op "false". Deze sleutel vertelt de virtuele omgeving of systeemsite-pakketten moeten worden gebruikt of niet. Indien ingesteld op "true", zal Python in de virtuele omgeving naar systeempakketten kijken voor het geval een pakket niet wordt gevonden in de virtuele omgeving. Het maakt ook alle door het systeem geïnstalleerde pakketten importeerbaar in de virtuele omgeving.

Om een ​​virtuele omgeving te verwijderen, hoef je alleen maar de map met de virtuele omgeving te verwijderen en het is weg.

Het is mogelijk om virtualenv te maken en op te slaan op externe USB-drives. U moet een USB-drive hebben die is geformatteerd in het NTFS- of EXT-bestandssysteem. FAT32-bestandssysteem ondersteunt geen symlinks, wat een vereiste is voor virtuele omgevingen om te werken.

Pip Package Manager gebruiken om pakketten in een virtuele omgeving te installeren

In een virtuele omgeving kunt u pip package manager gebruiken om pakketten te installeren, upgraden en verwijderen uninstall. Het is mogelijk om een ​​pakket te downgraden of te upgraden door een bepaald versienummer op te geven.

Je kunt een pakket installeren met pip door het commando uit te voeren (vervang pygame door je gewenste pakketnaam):

$ pip pygame installeren

Een doorzoekbare repository van pip-pakketten is hier te vinden.

Gebruik het commando om een ​​pakket te verwijderen:

$ pip pygame verwijderen

Voer de opdracht uit om alle versies van een pakket te zien:

$ pip install pygame==

Om te downgraden of upgraden naar een specifieke versie, gebruik je het commando (vervang "1".9.5” met uw gewenste versienummer):

$ pip install pygame==1.9.5

Voer de opdracht uit om een ​​pakket te upgraden naar de nieuwste versie:

$ pip install --upgrade pygame

Voer de opdracht uit om alle pakketten te zien die in de virtuele omgeving zijn geïnstalleerd:

$ piplijst

Voer de opdracht uit om een ​​lijst met geïnstalleerde pakketten in virtualenv op te slaan:

$ pip freeze > vereisten.tekst

U kunt bovenstaande "vereisten" gebruiken.txt"-bestand om pakketten in bulk te installeren. Een use case is om een ​​bestaande omgeving te dupliceren door alle pakketten helemaal opnieuw te installeren. Voer de opdracht uit om pip-pakketten in bulk te installeren:

$ pip install -r vereisten.tekst

Virtuele Python-omgevingen gebruiken met niet-Python-applicaties

Toepassingen die in andere programmeertalen zijn geschreven, kunnen worden gesandboxt in virtuele Python-omgevingen zolang pip of een andere Python-pakketbeheerder binaire bestanden en pakketten voor deze alternatieve programmeertalen/frameworks levert.

Hier is een klein voorbeeld waarin de installatie van Node . wordt uitgelegd.js in de virtuele Python-omgeving. Voer de volgende opdrachten één voor één uit:

$ python3 -m venv my_node_env
$ source my_node_env/bin/activate
$ pip installatiewiel
$ pip install nodeenv
$ nodeenv -p
$ nodeenv --versie
$ knooppunt --versie

Als je klaar bent, heb je een volledig geïsoleerde Node.js-omgeving. U kunt zoveel virtuele omgevingen maken als u wilt voor verschillende Node.js-toepassingen. Pakketten die via npm-pakketbeheerder zijn geïnstalleerd, worden alleen beperkt tot geactiveerde virtuele omgeving.

Conclusie

Het creëren van een virtuele Python-omgeving is een uitstekende manier om ontwikkelomgevingen te containeriseren. Elke virtuele omgeving heeft zijn eigen Python-binary en zijn eigen onafhankelijke set pakketten. Het ontwikkelen van meerdere Python-applicaties op hetzelfde systeem kan uw thuis- en rootdirectory snel vervuilen en virtuele omgevingen maken het zo gemakkelijk om ze te onderhouden.

Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...
Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...
Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...