sys — systemspecifika funktioner¶
Denna modul ger tillgång till tolkspecifika variabler och funktioner, inklusive kommandoradsargument, sökvägen för moduler, standardströmmar och information om den körande implementationen.
Funktioner¶
- sys.exit(retval: object = 0, /) NoReturn¶
Avsluta det aktuella programmet med en given avslutningskod. I grunden utlöser denna funktion ett
SystemExit-undantag. Om ett argument anges används dess värde som argument tillSystemExit.På OpenMV Cam orsakar ett ohanterat
SystemExitför närvarande en Mjuk återställning av MicroPython.
- sys.atexit(func: Callable[[], None] | None) Callable[[], None] | None¶
Registrerar func för att anropas vid avslutning. func måste vara ett anropbart objekt som inte tar några argument, eller
Noneför att inaktivera anropet. Funktionenatexitreturnerar det tidigare värdet som angetts av denna funktion, vilket inledningsvis ärNone.Skillnad mot CPython
Denna funktion är ett MicroPython-tillägg som är avsett att tillhandahålla liknande funktionalitet som modulen
atexiti CPython.
- sys.print_exception(exc: BaseException, file: Any = sys.stdout, /) None¶
Skriver ut ett undantag med en spårning (traceback) till ett filliknande objekt file (eller
sys.stdoutsom standard).Skillnad mot CPython
Detta är en förenklad version av en funktion som finns i modulen
tracebacki CPython. Till skillnad fråntraceback.print_exception()tar denna funktion enbart undantagsvärdet i stället för undantagstyp, undantagsvärde och spårningsobjekt; argumentet file ska vara positionellt; ytterligare argument stöds inte. En CPython-kompatibeltraceback-modul finns imicropython-lib.
- sys.settrace(tracefunc: Callable | None) None¶
Aktiverar spårning av bytecode-exekvering. För detaljer, se CPython-dokumentationen.
Denna funktion är inte tillgänglig på OpenMV Cam. Den är inaktiverad som standard eftersom den saktar ner kodexekveringen; för att aktivera den krävs att man bygger anpassad fast programvara.
Konstanter¶
- sys.implementation: object¶
Objekt med information om den aktuella Python-implementationen. För MicroPython har det följande attribut:
name - strängen ”micropython”
version - tupel (major, minor, micro, releaselevel), t.ex. (1, 22, 0, ’’)
_machine - sträng som beskriver den underliggande maskinen
_mpy - den mpy-filformatsversion som stöds (valfritt attribut)
_build - sträng som kan hjälpa till att identifiera den konfiguration som MicroPython byggdes med
_thread - valfritt strängattribut, finns om målet har trådning och är antingen ”GIL” eller ”unsafe”
Detta objekt är det rekommenderade sättet att skilja MicroPython från andra Python-implementationer (observera att det fortfarande kanske inte finns i de allra minimalaste portarna).
Från och med version 1.22.0-preview är den fjärde noden releaselevel i implementation.version antingen en tom sträng eller
"preview".Posten _build lades till i version 1.25.0 och är en bindestreckseparerad uppsättning element. Nya element kan komma att läggas till i framtiden, så det är bäst att komma åt detta fält med
sys.implementation._build.split("-"). De element som för närvarande används är:På OpenMV Cam är det första elementet kortnamnet och det andra elementet (om det finns) kortvarianten.
Posten _thread lades till i version 1.26.0 och om den finns har målet modulen
_thread. Om målet aktiverar GIL (global interpreter lock) är detta attribut"GIL". Annars är attributet"unsafe"och målet har trådning men aktiverar inte GIL, och muterbara Python-objekt (såsombytearray,listochdict) som delas mellan trådar måste skyddas explicit med lås som_thread.allocate_lock.Skillnad mot CPython
CPython kräver fler attribut för detta objekt, men det faktiskt användbara minimum är implementerat i MicroPython.
- sys.maxsize: int¶
Maxvärdet som en inbyggd heltalstyp kan rymma på den aktuella plattformen, eller det maxvärde som kan representeras av MicroPythons heltalstyp, om det är mindre än plattformens maxvärde (vilket är fallet för MicroPython-portar utan stöd för long int).
Detta attribut är användbart för att upptäcka en plattforms ”bitness” (32-bitars kontra 64-bitars osv.). Det rekommenderas att inte jämföra detta attribut direkt med något värde, utan i stället räkna antalet bitar i det:
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¶
Ordlista över inlästa moduler. På OpenMV Cam inkluderar denna inte inbyggda moduler.
- sys.path: list[str]¶
En muterbar lista över kataloger att söka i efter importerade moduler.
Skillnad mot CPython
I MicroPython indikerar en post med värdet
".frozen"att importen ska söka efter frozen modules vid den punkten i sökningen. Om ingen frozen module hittas kommer sökningen inte att leta efter en katalog med namnet.frozen, utan i stället fortsätta med nästa post isys.path.
- sys.platform: str¶
Den plattform som MicroPython körs på. Detta är en port-/kortdefinierad sträng – till exempel
"mimxrt"på OpenMV RT1060 och"alif"på OpenMV AE3 (vissa äldre OpenMV Cams rapporterar en modellspecifik sträng som"OpenMV4-H7"). För att kontrollera om ditt program körs på MicroPython (kontra en annan Python-implementation), användsys.implementationi stället.
- sys.ps1: str¶
Muterbart attribut som innehåller strängen som används för den primära REPL-prompten. Standardvärdet ger den vanliga Python-prompten
>>>. Se ävensys.ps2för fortsättningsprompten.
- sys.ps2: str¶
Muterbart attribut som innehåller strängen som används för REPL-fortsättningsprompten. Standardvärdet ger den vanliga Python-prompten
.... Se ävensys.ps1för den primära prompten.
- sys.tracebacklimit: int¶
Ett muterbart attribut som innehåller ett heltalsvärde som anger det maximala antalet spårningsposter som ska lagras i ett undantag. Sätt till 0 för att inaktivera tillägg av spårningar. Standardvärdet är 1000.
Obs: detta attribut är inte tillgängligt på OpenMV Cam.