Kada pišete program u C/C++, morate ga kompajlirati. Kompilacija uključuje prevođenje vašeg čoveku razumljivog koda u mašinski razumljiv kod, ili mašinski kod. Mašinski kod je oblik osnovnog nivoa instrukcija koje može da se direktno izvrši od strane CPU-a. Nakon uspešne kompilacije, vaš kod generiše izvršnu datoteku. Izvršavanje ove datoteke pokreće operacije u vašem kodu korak po korak.
U većini slučajeva, Python je interpretirani jezik, a ne kompajliran, iako je kompilacija jedan od koraka u prevođenju.
Python kod, napisan u .py datoteci, prvo se kompajlira u ono što se zove bajt kod (o kome će se dalje raspravljati) koji se čuva u .pyc ili .pyo formatu.
Umesto da prevodi izvorni kod u mašinski kod kao što je C++, Python kod je preveden u bajt kod. Ovaj bajtkod je skup instrukcija niskog nivoa koje može da izvrši interpreter.