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 aanSystemExitdoorgegeven.Op de OpenMV Cam veroorzaakt een onafgehandelde
SystemExitmomenteel 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
Noneom de aanroep uit te schakelen. De functieatexitgeeft de vorige waarde terug die door deze functie is ingesteld, die aanvankelijkNoneis.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 tottraceback.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 compatibeletraceback-module is te vinden inmicropython-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.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 (zoalsbytearray,listendict) 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 insys.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 daarvansys.implementationom 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 ooksys.ps2voor 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 ooksys.ps1voor de primaire prompt.
- 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.