9.1 Ārējās bibliotēkas un instalēšana
Stundas uzdevums: Iepazīt Python bibliotēku ekosistēmu un iemācīties instalēt un izmantot ārējās bibliotēkas (pip).
70 min plāns: Teorija un paraugs (~10 min) · 1. uzdevums (~15 min) - izveido virtuālo vidi un instalē bibliotēku · 2. uzdevums (~25 min) - izsauc reālu API ar requests · 3. uzdevums (~20 min) - saglabā atkarības requirements.txt. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.
Pirms sāc: atver termināli projekta mapē. Šai stundai vajadzīgs internets - bez tā pip install un API izsaukums nestrādās.
Teorija: pip un virtual environment
Bibliotēka ir cita programmētāja jau uzrakstīts kods, ko vari iekļaut savā projektā ar vienu komandu. Python ir aptuveni 500,000 publisku bibliotēku repozitorijā PyPI.
# Instalācija
pip install streamlit
pip install requests
pip install --upgrade pillow
# Saraksts ar instalētajām
pip list
# Saglabā atkarības
pip freeze > requirements.txt
pip install -r requirements.txt
Virtual environment ir izolēta vide projektam, lai dažādi projekti varētu izmantot dažādas versijas:
python -m venv venv # izveido
venv\Scripts\activate # Windows aktivizācija
source venv/bin/activate # Linux/Mac aktivizācija
deactivate # iziet
Praktiskie uzdevumi
1. uzdevums -
Izveido virtuālo vidi un instalē bibliotēku
Beigās tavas bibliotēkas dzīvos projekta mapē, nevis visā datorā.
- Izpildi
python -m venv venvprojekta mapē. - Aktivizē vidi: Windows
venv\Scripts\activate, macOS/Linuxsource venv/bin/activate. - Pārbaudi, vai termināļa rindas sākumā parādījās
(venv). - Izpildi
pip install requests. - Izpildi
pip listun atrodi sarakstārequests. - Pievieno failam
.gitignorerinduvenv/.
Gatavs, kad: terminālī redzams (venv), pip list rāda requests, un venv/ nenonāk GitHub.
2. uzdevums -
Izsauc reālu API ar requests
Beigās tava programma paņems laika ziņas no interneta.
- Izveido failu
laiks.pyun ierakstiimport requests. - Uzraksti funkciju
def laiks_riga():. - Izsauc tajā
requests.get("https://api.open-meteo.com/v1/forecast", params={...})ar Rīgas koordinātēm. - Pārbaudi
r.status_codeun atgriezNone, ja tas nav 200. - Atgriez
r.json()["current_weather"]. - Izdrukā temperatūru un palaid programmu.
- Izslēdz internetu vai sabojā adresi un pārbaudi, ka programma neavarē.
Gatavs, kad: programma izdrukā pašreizējo temperatūru, bet ar sabojātu adresi paziņo par kļūdu, nevis avarē.
3. uzdevums -
Saglabā atkarības requirements.txt
Beigās klasesbiedrs varēs palaist tavu projektu ar vienu komandu.
- Izpildi
pip freeze > requirements.txt. - Atver failu un pārbaudi, vai tajā ir
requestsar versijas numuru. - Veic commit ar
requirements.txt, bet bez mapesvenv/. - Izdzēs mapi
venvun izveido to no jauna. - Izpildi
pip install -r requirements.txt. - Palaid
laiks.pyun pārbaudi, ka viss atkal strādā. - Pieraksti vienu secinājumu: kāpēc
venvnedrīkst nonākt GitHub.
Gatavs, kad: pēc vides dzēšanas un atjaunošanas no requirements.txt programma strādā tāpat kā iepriekš.
Papildu uzdevums - Pievieno otru bibliotēku
Ja pamatdarbs ir gatavs, izmēģini vēl vienu PyPI bibliotēku.
- Instalē
pip install rich. - Importē to un izdrukā laika ziņas krāsainā tabulā.
- Atjauno
requirements.txtarpip freeze. - Pārbaudi, vai failā parādījās jaunā bibliotēka.
- Veic commit un push.
Gatavs, kad: izvade ir krāsaina, un requirements.txt satur abas bibliotēkas.
Biežākās kļūdas
- Aizmirsts aktivizēt venv: Bibliotēkas instalējas globāli, sajaucot dažādu projektu atkarības.
- pip vs pip3: Daudzās sistēmās jālieto
pip3Python 3 versijai. - requirements.txt nav GitHub: Bez tā citi nevar palaist tavu projektu.
Koda piemērs
import requests
def laiks_riga():
r = requests.get(
"https://api.open-meteo.com/v1/forecast",
params={"latitude": 56.95, "longitude": 24.10, "current_weather": True}
)
if r.status_code != 200: return None
return r.json()["current_weather"]
dati = laiks_riga()
if dati:
print(f"Rīgā: {dati['temperature']}°C, vējš {dati['windspeed']} km/h")