Python Academy · Oppitunti

Virtuaaliympäristöjen merkitys

Ymmärtäkää riippuvuusristiriidat ja se, miksi eristys on välttämätöntä.

Oppitunti 1/414 vaihetta

Virtuaaliympäristöjen merkitys on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

Johdanto

Ilman virtuaaliympäristöjä kaikki Python-paketit asennetaan globaalisti, mikä aiheuttaa projektien välisiä versiokonflikteja.

Globaalin asennuksen ongelma

Oletusarvoisesti pip asentaa paketit järjestelmän Pythoniin. Projekti A tarvitsee requests-version 2.25 ja projekti B version 2.28 — ristiriita!
# Without venv:
# pip install requests==2.25  -> global
# pip install requests==2.28  -> overwrites 2.25!
print('global conflict demo')

Mikä virtuaaliympäristö on

venv on eristetty Python-asennus hakemistossa. Kukin projekti saa omat pakettinsa muista projekteista riippumatta.
# venv creates:
# project/
#   .venv/
#     bin/python     (isolated Python)
#     lib/site-packages/  (project packages)
print('venv structure')

Toistettavuus

venv:n ja requirements.txt-tiedoston avulla kuka tahansa voi luoda täsmälleen saman ympäristön: pip install -r requirements.txt
# pip freeze > requirements.txt
# # Later, on another machine:
# python -m venv .venv
# pip install -r requirements.txt
print('reproducible env')

Turvallisuuseristys

Pakettien asentaminen venv:hen ei vaikuta järjestelmän Pythoniin. sudo- tai järjestelmänvalvojan oikeuksia ei tarvita. Järjestelmän työkalujen rikkoutumisesta ei ole vaaraa.
# System Python is untouched:
# /usr/bin/python -> system packages
# .venv/bin/python -> project packages only
print('security isolation')

CI/CD ja Docker

Luokaa CI/CD-putkissa ja säilöissä uusi venv jokaista koontiversiota varten, jotta ympäristö pysyy puhtaana ja toistettavana.
# Dockerfile pattern:
# RUN python -m venv /opt/venv
# RUN /opt/venv/bin/pip install -r requirements.txt
print('ci/cd demo')

Yksi venv projektia kohden

Käyttäkää yhtä venv-ympäristöä projektia kohden ja tallentakaa se projektin juurihakemiston sisällä olevaan .venv/-hakemistoon. Älkää koskaan tallentako sitä versionhallintaan.
# Add to .gitignore:
# .venv/
# __pycache__/
print('gitignore tip')

Järjestelmän, käyttäjän ja venv:n site-packages

Python etsii paketteja seuraavista sijainneista: venv:n site-packages → käyttäjän site → globaali site. Aktivoitu venv on etusijalla.
import sys
print('\n'.join(p for p in sys.path if 'site' in p))

pyenv Python-versioiden hallintaan

pyenv hallitsee useita Python-versioita (3.10, 3.11, 3.12). Yhdistäkää se venv:hen täydellistä eristystä varten.
# pyenv install 3.12.0
# pyenv local 3.12.0
# python -m venv .venv
print('pyenv demo')

conda vaihtoehtona

conda (Anaconda/Miniconda) hallitsee sekä paketteja että Python-versioita. Se on suosittu datatieteessä.
# conda create -n myenv python=3.11
# conda activate myenv
# conda install numpy pandas
print('conda demo')

Parhaiden käytäntöjen yhteenveto

Työskennelkää aina venv-ympäristössä. Käyttäkää requirements.txt-tiedostoa tai pyproject.toml-tiedostoa. Lisätkää .venv/ .gitignore-tiedostoon. Käyttäkää yhdenmukaisia Python-versioita.
import sys
print('Python:', sys.version)
print('venv:', sys.prefix != sys.base_prefix)

Pikatarkistus

Minkä pääongelman virtuaaliympäristöt ratkaisevat?

Kertaus

Virtuaaliympäristöt: projektikohtainen eristys. Jokaisella venv-ympäristöllä on omat pakettinsa. Käyttäkää requirements.txt-tiedostoa toistettavuuteen. Lisätkää .venv/ .gitignore-tiedostoon.

Jatkakaa

Jatkakaa samaan tapaan! Siirtykää seuraavaan oppituntiin.
Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Virtuaaliympäristöjen merkitys” ilmainen?

Kyllä – oppitunnin ”Virtuaaliympäristöjen merkitys” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Virtuaaliympäristöjen merkitys”?

Ymmärtäkää riippuvuusristiriidat ja se, miksi eristys on välttämätöntä. Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Virtuaaliympäristöjen merkitys”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Virtuaaliympäristöjen merkitys
  2. venv-ympäristön luominen ja aktivointi
  3. Riippuvuuksien hallinta pipillä
  4. Modernit työkalut: pipenv ja uv
← Takaisin: Python Academy