0%

Geïsoleerde omgevingen en pakketten

Opnieuw opbouwen in plaats van repareren

Het project heeft eindelijk iets waardevollers dan een werkende omgeving: genoeg informatie om die te vervangen.

Heeft de site dit hoofdstuk sinds je vorige bezoek hersteld, dan kan .venv al weg zijn. Staat de map er nog, dan hoef je die niet te verwijderen alleen om de uitleg te volgen. De herstelvolgorde is dezelfde wanneer de map ontbreekt of je een defecte omgeving bewust verwijdert:

python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python check_package.py

Het nieuwe onderdeel is -r requirements.txt. Dat vertelt pip om vereisten uit het bestand te lezen in plaats van uit de rest van de opdrachtregel. pip installeert requests 2.34.2 en bepaalt de ondersteunende pakketten. De laatste opdracht toont de geïnstalleerde versie via dezelfde importcontrole als eerder.

Herstellen is een normale handeling

Kopieer .venv niet van een andere computer, upload die niet en probeer bestanden daarin niet met de hand te repareren. Omgevingen leggen paden en uitvoerbare details vast van de computer waarop ze zijn gemaakt. Een gekopieerde omgeving kan aanwezig lijken terwijl die daaronder naar de verkeerde Python wijst.

Verwijderen en opnieuw opbouwen is meestal sneller, duidelijker en betrouwbaarder. Je omgeving is niet de plek waar je project zijn verhaal vertelt. Dat doet requirements.txt.

De lokale herstelvolgorde

Op je eigen computer gebruiken deze opdrachten echte PyPI in plaats van de interne mirror van Python Land. Ze lezen hetzelfde blijvende recept.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python check_package.py

Je verliest .venv, maar hebt requirements.txt nog. Wat is de beste manier om te herstellen?

Je begrijpt nu elk onderdeel van dat herstel. Een nieuwer hulpmiddel kan het korter maken, maar mag niet verbergen wat het verkort.