sys — systeemspecifieke functies

Deze module biedt toegang tot interpreter-specifieke variabelen en functies, waaronder opdrachtregelargumenten, het zoekpad voor modules, standaardstromen en informatie over de actieve implementatie.

Functies

sys.exit(retval: object = 0, /) NoReturn

Beëindig het huidige programma met een opgegeven afsluitcode. Onderliggend genereert deze functie een SystemExit-uitzondering. Als er een argument wordt opgegeven, wordt de waarde ervan als argument aan SystemExit doorgegeven.

Op de OpenMV Cam veroorzaakt een onafgehandelde SystemExit momenteel een Zachte reset van MicroPython.

sys.atexit(func: Callable[[], None] | None) Callable[[], None] | None

Registreer func om te worden aangeroepen bij beëindiging. func moet een aanroepbaar object zijn dat geen argumenten aanneemt, of None om de aanroep uit te schakelen. De functie atexit geeft de vorige waarde terug die door deze functie is ingesteld, die aanvankelijk None is.

Verschil met CPython

Deze functie is een MicroPython-uitbreiding die bedoeld is om vergelijkbare functionaliteit te bieden als de atexit-module in CPython.

sys.print_exception(exc: BaseException, file: Any = sys.stdout, /) None

Druk een uitzondering met een traceback af naar een bestandsachtig object file (of standaard naar sys.stdout).

Verschil met CPython

Dit is een vereenvoudigde versie van een functie die voorkomt in de traceback-module in CPython. In tegenstelling tot traceback.print_exception() neemt deze functie alleen de uitzonderingswaarde aan in plaats van het uitzonderingstype, de uitzonderingswaarde en het traceback-object; het argument file moet positioneel zijn; verdere argumenten worden niet ondersteund. Een met CPython compatibele traceback-module is te vinden in micropython-lib.

sys.settrace(tracefunc: Callable | None) None

Schakel het traceren van bytecode-uitvoering in. Voor details, zie de CPython-documentatie.

Deze functie is niet beschikbaar op de OpenMV Cam. Ze is standaard uitgeschakeld omdat ze de codeuitvoering vertraagt; om ze in te schakelen moet aangepaste firmware worden gebouwd.

Constanten

sys.argv: list[str]

Een veranderlijke lijst met argumenten waarmee het huidige programma is gestart.

sys.byteorder: str

De bytevolgorde van het systeem ("little" of "big").

sys.implementation: object

Object met informatie over de huidige Python-implementatie. Voor MicroPython heeft het de volgende attributen:

  • name - tekenreeks “micropython”

  • version - tuple (major, minor, micro, releaselevel), bijvoorbeeld (1, 22, 0, ‘’)

  • _machine - tekenreeks die de onderliggende machine beschrijft

  • _mpy - ondersteunde versie van het mpy-bestandsformaat (optioneel attribuut)

  • _build - tekenreeks die kan helpen om de configuratie te identificeren waarmee MicroPython is gebouwd

  • _thread - optioneel tekenreeksattribuut, bestaat als het doel threading ondersteunt en is ofwel “GIL” of “unsafe”

Dit object is de aanbevolen manier om MicroPython te onderscheiden van andere Python-implementaties (merk op dat het mogelijk nog steeds niet bestaat in de zeer minimale ports).

Vanaf versie 1.22.0-preview is het vierde element releaselevel in implementation.version ofwel een lege tekenreeks of "preview".

Het item _build is toegevoegd in versie 1.25.0 en is een door koppeltekens gescheiden reeks elementen. In de toekomst kunnen er nieuwe elementen worden toegevoegd, dus het is het beste om dit veld te benaderen met sys.implementation._build.split("-"). De elementen die momenteel worden gebruikt zijn:

  • Op de OpenMV Cam is het eerste element de naam van het board en het tweede element (indien aanwezig) de boardvariant.

Het item _thread is toegevoegd in versie 1.26.0 en als het bestaat, dan heeft het doel de _thread-module. Als het doel de GIL (global interpreter lock) inschakelt, dan is dit attribuut "GIL". Anders is het attribuut "unsafe" en heeft het doel threading maar schakelt het de GIL niet in, en moeten veranderlijke Python-objecten (zoals bytearray, list en dict) die tussen threads worden gedeeld expliciet worden beschermd door locks zoals _thread.allocate_lock.

Verschil met CPython

CPython vereist meer attributen voor dit object, maar het werkelijk nuttige absolute minimum is geïmplementeerd in MicroPython.

sys.maxsize: int

Maximale waarde die een native integertype kan bevatten op het huidige platform, of de maximale waarde die kan worden weergegeven door het MicroPython-integertype, als die kleiner is dan de maximale waarde van het platform (dat is het geval voor MicroPython-ports zonder ondersteuning voor long int).

Dit attribuut is nuttig om de “bitness” van een platform te detecteren (32-bits versus 64-bits, enz.). Het wordt aanbevolen om dit attribuut niet rechtstreeks met een bepaalde waarde te vergelijken, maar in plaats daarvan het aantal bits erin te tellen:

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.modules: dict

Woordenboek van geladen modules. Op de OpenMV Cam omvat dit geen ingebouwde modules.

sys.path: list[str]

Een veranderlijke lijst met mappen om in te zoeken naar geïmporteerde modules.

Verschil met CPython

Op MicroPython geeft een item met de waarde ".frozen" aan dat het importeren op dat punt in de zoekopdracht naar frozen modules moet zoeken. Als er geen frozen module wordt gevonden, zal de zoekopdracht niet zoeken naar een map met de naam .frozen, maar in plaats daarvan doorgaan met het volgende item in sys.path.

sys.platform: str

Het platform waarop MicroPython draait. Dit is een door de port/het board gedefinieerde tekenreeks – bijvoorbeeld "mimxrt" op de OpenMV RT1060 en "alif" op de OpenMV AE3 (sommige oudere OpenMV Cams geven een modelspecifieke tekenreeks zoals "OpenMV4-H7"). Gebruik in plaats daarvan sys.implementation om te controleren of uw programma op MicroPython draait (versus een andere Python-implementatie).

sys.ps1: str

Veranderlijk attribuut dat de tekenreeks bevat die wordt gebruikt voor de primaire REPL-prompt. De standaardwaarde geeft de standaard Python-prompt >>>. Zie ook sys.ps2 voor de vervolgprompt.

sys.ps2: str

Veranderlijk attribuut dat de tekenreeks bevat die wordt gebruikt voor de REPL-vervolgprompt. De standaardwaarde geeft de standaard Python-prompt .... Zie ook sys.ps1 voor de primaire prompt.

sys.stderr: object

Standaardfout-stream.

sys.stdin: object

Standaardinvoer-stream.

sys.stdout: object

Standaarduitvoer-stream.

sys.tracebacklimit: int

Een veranderlijk attribuut dat een gehele waarde bevat die het maximale aantal traceback-items is dat in een uitzondering wordt opgeslagen. Stel in op 0 om het toevoegen van tracebacks uit te schakelen. Standaard 1000.

Opmerking: dit attribuut is niet beschikbaar op de OpenMV Cam.

sys.version: str

Python-taalversie waaraan deze implementatie voldoet, als tekenreeks.

sys.version_info: tuple

Python-taalversie waaraan deze implementatie voldoet, als tuple van gehele getallen.

Verschil met CPython

Alleen de eerste drie versienummers (major, minor, micro) worden ondersteund en ze kunnen alleen via index worden gerefereerd, niet via naam.