sys — funkcije specifične za sustav¶
Ovaj modul omogućuje pristup varijablama i funkcijama specifičnima za interpreter, uključujući argumente naredbenog retka, putanju za pretraživanje modula, standardne tokove te informacije o implementaciji koja se izvodi.
Funkcije¶
- sys.exit(retval: object = 0, /) NoReturn¶
Prekida trenutni program s navedenim izlaznim kodom. Interno ova funkcija podiže iznimku
SystemExit. Ako je naveden argument, njegova se vrijednost prosljeđuje kao argument iznimciSystemExit.Na OpenMV Cam, neuhvaćena iznimka
SystemExittrenutno uzrokuje Meko resetiranje MicroPythona.
- sys.atexit(func: Callable[[], None] | None) Callable[[], None] | None¶
Registrira func da bude pozvan prilikom prekida. func mora biti pozivljiv objekt koji ne prima argumente, ili
Noneza onemogućavanje poziva. Funkcijaatexitvratit će prethodnu vrijednost koju je postavila ova funkcija, koja je u početkuNone.Razlika u odnosu na CPython
Ova funkcija je MicroPython proširenje namijenjeno pružanju funkcionalnosti slične modulu
atexitu CPythonu.
- sys.print_exception(exc: BaseException, file: Any = sys.stdout, /) None¶
Ispisuje iznimku s tragom izvođenja (traceback) u objekt sličan datoteci file (ili
sys.stdoutpo zadanome).Razlika u odnosu na CPython
Ovo je pojednostavljena verzija funkcije koja se pojavljuje u modulu
tracebacku CPythonu. Za razliku odtraceback.print_exception(), ova funkcija prima samo vrijednost iznimke umjesto tipa iznimke, vrijednosti iznimke i objekta traga izvođenja; argument file trebao bi biti pozicijski; daljnji argumenti nisu podržani. Modultracebackkompatibilan s CPythonom može se pronaći umicropython-lib.
- sys.settrace(tracefunc: Callable | None) None¶
Omogućuje praćenje izvođenja bytecodea. Za detalje pogledajte CPython dokumentaciju.
Ova funkcija nije dostupna na OpenMV Cam. Onemogućena je po zadanome jer usporava izvođenje koda; njezino omogućavanje zahtijeva izgradnju prilagođenog ugrađenog programa (firmware).
Konstante¶
- sys.implementation: object¶
Objekt s informacijama o trenutnoj Python implementaciji. Za MicroPython ima sljedeće atribute:
name - niz znakova „micropython”
version - n-torka (major, minor, micro, releaselevel), npr. (1, 22, 0, ‘’)
_machine - niz znakova koji opisuje pripadni stroj
_mpy - podržana verzija formata mpy datoteke (neobavezan atribut)
_build - niz znakova koji može pomoći u identifikaciji konfiguracije s kojom je MicroPython izgrađen
_thread - neobavezan atribut niza znakova, postoji ako ciljna platforma podržava dretve i ima vrijednost „GIL” ili „unsafe”
Ovaj objekt je preporučeni način za razlikovanje MicroPythona od drugih Python implementacija (imajte na umu da možda i dalje neće postojati u vrlo minimalnim portovima).
Počevši od verzije 1.22.0-preview, četvrti čvor releaselevel u implementation.version je ili prazan niz znakova ili
"preview".Unos _build dodan je u verziji 1.25.0 i predstavlja skup elemenata odvojenih crticama. Novi elementi mogu se dodavati u budućnosti pa je najbolje pristupati ovom polju pomoću
sys.implementation._build.split("-"). Elementi koji se trenutno koriste su:Na OpenMV Cam prvi element je naziv pločice, a drugi element (ako postoji) je varijanta pločice.
Unos _thread dodan je u verziji 1.26.0 i ako postoji, tada ciljna platforma ima modul
_thread. Ako ciljna platforma omogućuje GIL (globalni interpreterski zaključ), tada ovaj atribut ima vrijednost"GIL". U suprotnom atribut ima vrijednost"unsafe"i ciljna platforma podržava dretve, ali ne omogućuje GIL, te se promjenjivi Python objekti (poputbytearray,listidict) koji se dijele među dretvama moraju eksplicitno zaštititi zaključima poput_thread.allocate_lock.Razlika u odnosu na CPython
CPython propisuje više atributa za ovaj objekt, ali u MicroPythonu je implementiran stvarno koristan nužni minimum.
- sys.maxsize: int¶
Najveća vrijednost koju nativni cjelobrojni tip može sadržavati na trenutnoj platformi, ili najveća vrijednost koju može predstaviti MicroPython cjelobrojni tip, ako je manja od maksimalne vrijednosti platforme (što je slučaj kod MicroPython portova bez podrške za long int).
Ovaj atribut je koristan za otkrivanje „bitnosti” platforme (32-bitna naspram 64-bitne itd.). Preporučuje se ne uspoređivati ovaj atribut izravno s nekom vrijednošću, već umjesto toga prebrojati broj bitova u njemu:
bits = 0 v = sys.maxsize while v: bits += 1 v >>= 1 if bits > 32: # 64-bit (or more) platform ... else: # 32-bit (or less) platform # Note that on 32-bit platform, value of bits may be less than 32 # (e.g. 31) due to peculiarities described above, so use "> 16", # "> 32", "> 64" style of comparisons.
- sys.path: list[str]¶
Promjenjiva lista direktorija u kojima se traže uvezeni moduli.
Razlika u odnosu na CPython
U MicroPythonu unos s vrijednošću
".frozen"označava da pretraživanje pri uvozu treba potražiti zamrznute module na tom mjestu u pretrazi. Ako se ne pronađe zamrznuti modul, pretraga neće tražiti direktorij naziva.frozen, već će nastaviti sa sljedećim unosom usys.path.
- sys.platform: str¶
Platforma na kojoj se MicroPython izvodi. Ovo je niz znakova definiran portom/pločicom – na primjer
"mimxrt"na OpenMV RT1060 i"alif"na OpenMV AE3 (neke starije OpenMV Cam izvještavaju niz znakova specifičan za model poput"OpenMV4-H7"). Za provjeru izvodi li se vaš program na MicroPythonu (naspram druge Python implementacije), umjesto toga koristitesys.implementation.
- sys.ps1: str¶
Promjenjivi atribut koji sadrži niz znakova koji se koristi za primarni REPL upit. Zadana vrijednost daje standardni Python upit
>>>. Pogledajte isys.ps2za upit za nastavak.
- sys.ps2: str¶
Promjenjivi atribut koji sadrži niz znakova koji se koristi za REPL upit za nastavak. Zadana vrijednost daje standardni Python upit
.... Pogledajte isys.ps1za primarni upit.
- sys.tracebacklimit: int¶
Promjenjivi atribut koji sadrži cjelobrojnu vrijednost koja predstavlja najveći broj unosa traga izvođenja koji se pohranjuju u iznimci. Postavite na 0 za onemogućavanje dodavanja tragova izvođenja. Zadana vrijednost je 1000.
Napomena: ovaj atribut nije dostupan na OpenMV Cam.