Pythonin toiminnallisuutta voidaan helposti laajentaa asentamalla lisäosia paketteina (package). Paketissa määriteltyjä funktioita (function) ja luokkia (class, ohjelmallisen olion "piirustus") saa otettua käyttöön ohjelmissa komennolla from paketti import funktio/luokka.
Paketit asennetaan Python-ympäristöön pip-ohjelmalla.
from pynputimport keyboard# Otetaan käyttöön luokka keyboard paketista pynput # Määritellään kaksi funktiota, joita kutsutaan Listeneristä. # # Funktiota nappainta_painettu() kutsutaan, kun jotain näppäintä on painettu ja # funktiota nappain_vapautettu(), kun sormi nostetaan näppäimeltä. def nappainta_painettu (nappain):# Määritellään funktio nappainta_painettu(), jolle välitetään yksi parametri try :# Varaudutaan suoritusaikaisiin virheisiin try/except-rakenteella teksti = "Näppäintä {} painettu" # Valmistellaan muotoiltua tulostusta (kts. format()-funktio) # nappain.char muuntaa näppäinkoodin tulostettavaksi # merkiksi. Funktionäppäinten tai muiden erikois- # näppäimien koodeja ei voi muuttaa tulostettavaksi # merkiksi, vaan ne aiheuttavat AttributeError- # virheen, joka käsitellään except-lohkossa. except AttributeError : teksti ="Erikoisnäppäintä {} painettu" # Erikoisnäppäimet tulostetaan koodimuodossa # käyttämättä char-metodia def nappain_vapautettu (nappain):# Muuten samanlainen kuin nappainta_painettu()- # funktio, mutta erikoisnäppäinten vapauttamisesta # ei tulosteta mitään. try : teksti ="Näppäin {} vapautettu" except AttributeError :if nappain == keyboard.Key.esc:# Sen sijaan tarkistetaan, josko painettu " )painettu, lopetetaan" # näppäin oli <Esc>-näppäin. return False # Jos oli, palautetaan funktiota kutsuneeseen # ohjelmaan False , mikä pysäyttää Listenerin # toiminnan. # PÄÄOHJELMA, jossa luodaan ja käynnistetään näppäimistön kuuntelija (non-blocking mode) kuuntelija = keyboard.Listener(# Luodaan Listener-tyyppinen muuttuja kuuntelija ja on_press=nappainta_painettu,# määritellään se kutsumaan funktioita, kun on_release=nappain_vapautettu)# näppäintä painetaan tai näppäin vapautetaan. kuuntelija.start()# Käynnistetään kuuntelija. Se jää suoritukseen, # kunnes Listener-metodin suoritus lakkaa - mikä # tapahtuu, kun <Esc>-näppäintä painetaan.