sys — järjestelmäkohtaiset funktiot

Tämä moduuli tarjoaa pääsyn tulkkikohtaisiin muuttujiin ja funktioihin, kuten komentorivin argumentteihin, moduulien hakupolkuun, vakiovirtoihin sekä tietoihin käynnissä olevasta toteutuksesta.

Funktiot

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

Lopeta nykyinen ohjelma annetulla poistumiskoodilla. Tämä funktio nostaa pohjimmiltaan SystemExit-poikkeuksen. Jos argumentti annetaan, sen arvo välitetään argumenttina SystemExit-poikkeukselle.

OpenMV Cam -laitteessa käsittelemätön SystemExit aiheuttaa tällä hetkellä MicroPythonin Pehmeä nollaus-toiminnon.

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

Rekisteröi func kutsuttavaksi lopetuksen yhteydessä. func-arvon on oltava kutsuttava, joka ei ota argumentteja, tai None poistaakseen kutsun käytöstä. atexit-funktio palauttaa tämän funktion aiemmin asettaman arvon, joka on aluksi None.

Ero CPythoniin

Tämä funktio on MicroPython-laajennus, jonka tarkoituksena on tarjota samankaltainen toiminnallisuus kuin CPythonin atexit-moduulilla.

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

Tulosta poikkeus ja sen jäljitys (traceback) tiedostonkaltaiseen objektiin file (tai oletuksena sys.stdout).

Ero CPythoniin

Tämä on yksinkertaistettu versio CPythonin traceback-moduulissa esiintyvästä funktiosta. Toisin kuin traceback.print_exception(), tämä funktio ottaa pelkän poikkeuksen arvon poikkeuksen tyypin, arvon ja jäljitysobjektin sijaan; file-argumentin tulisi olla sijaintiin perustuva; muita argumentteja ei tueta. CPython-yhteensopiva traceback-moduuli löytyy paketista micropython-lib.

sys.settrace(tracefunc: Callable | None) None

Ota tavukoodin suorituksen jäljitys käyttöön. Lisätietoja löytyy CPython-dokumentaatiosta.

Tämä funktio ei ole käytettävissä OpenMV Cam -laitteessa. Se on oletuksena poissa käytöstä, koska se hidastaa koodin suoritusta; sen käyttöönotto edellyttää mukautetun laiteohjelmiston rakentamista.

Vakiot

sys.argv: list[str]

Muutettava lista argumenteista, joilla nykyinen ohjelma käynnistettiin.

sys.byteorder: str

Järjestelmän tavujärjestys ("little" tai "big").

sys.implementation: object

Objekti, joka sisältää tietoja nykyisestä Python-toteutuksesta. MicroPythonissa sillä on seuraavat attribuutit:

  • name - merkkijono ”micropython”

  • version - monikko (major, minor, micro, releaselevel), esim. (1, 22, 0, ’’)

  • _machine - taustalla olevaa laitetta kuvaava merkkijono

  • _mpy - tuettu mpy-tiedostomuodon versio (valinnainen attribuutti)

  • _build - merkkijono, joka voi auttaa tunnistamaan kokoonpanon, jolla MicroPython rakennettiin

  • _thread - valinnainen merkkijonoattribuutti, joka on olemassa, jos kohteessa on säikeistys, ja on joko ”GIL” tai ”unsafe”

Tämä objekti on suositeltu tapa erottaa MicroPython muista Python-toteutuksista (huomaa, että se ei välttämättä silti ole olemassa hyvin minimaalisissa porteissa).

Versiosta 1.22.0-preview alkaen neljäs solmu releaselevel arvossa implementation.version on joko tyhjä merkkijono tai "preview".

_build-merkintä lisättiin versiossa 1.25.0, ja se on yhdysmerkein eroteltu joukko elementtejä. Uusia elementtejä voidaan lisätä loppuun tulevaisuudessa, joten tähän kenttään kannattaa päästä käsiksi käyttämällä sys.implementation._build.split("-"). Tällä hetkellä käytössä olevat elementit ovat:

  • OpenMV Cam -laitteessa ensimmäinen elementti on kortin nimi ja toinen elementti (jos läsnä) on kortin variantti.

_thread-merkintä lisättiin versiossa 1.26.0, ja jos se on olemassa, kohteessa on _thread-moduuli. Jos kohde ottaa käyttöön GIL:n (global interpreter lock), tämä attribuutti on "GIL". Muuten attribuutti on "unsafe", jolloin kohteessa on säikeistys mutta GIL ei ole käytössä, ja säikeiden kesken jaetut muutettavat Python-objektit (kuten bytearray, list ja dict) on suojattava nimenomaisesti lukoilla, kuten _thread.allocate_lock.

Ero CPythoniin

CPython edellyttää tältä objektilta enemmän attribuutteja, mutta MicroPythonissa on toteutettu todellinen hyödyllinen vähimmäismäärä.

sys.maxsize: int

Suurin arvo, jonka natiivi kokonaislukutyyppi voi sisältää nykyisellä alustalla, tai suurin MicroPythonin kokonaislukutyypin esittämä arvo, jos se on pienempi kuin alustan enimmäisarvo (näin on MicroPython-porteissa, joissa ei ole long int -tukea).

Tämä attribuutti on hyödyllinen alustan ”bittisyyden” (32-bittinen vs. 64-bittinen jne.) tunnistamiseen. On suositeltavaa olla vertaamatta tätä attribuuttia suoraan johonkin arvoon, vaan sen sijaan laskea siinä olevien bittien määrä:

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

Sanakirja ladatuista moduuleista. OpenMV Cam -laitteessa tämä ei sisällä sisäänrakennettuja moduuleja.

sys.path: list[str]

Muutettava lista hakemistoista, joista tuotuja moduuleja etsitään.

Ero CPythoniin

MicroPythonissa merkintä, jonka arvo on ".frozen", osoittaa, että tuonnin tulisi etsiä jäädytettyjä moduuleja siinä kohdassa hakua. Jos jäädytettyä moduulia ei löydy, haku ei etsi hakemistoa nimeltä .frozen, vaan se jatkaa seuraavalla merkinnällä listassa sys.path.

sys.platform: str

Alusta, jolla MicroPython on käynnissä. Tämä on portti- tai korttikohtainen merkkijono – esimerkiksi "mimxrt" OpenMV RT1060 -laitteessa ja "alif" OpenMV AE3 -laitteessa (jotkin vanhemmat OpenMV Camit raportoivat mallikohtaisen merkkijonon, kuten "OpenMV4-H7"). Tarkistaaksesi, onko ohjelmasi käynnissä MicroPythonissa (toisen Python-toteutuksen sijaan), käytä sen sijaan sys.implementation.

sys.ps1: str

Muutettava attribuutti, joka sisältää ensisijaisessa REPL-kehotteessa käytettävän merkkijonon. Oletus antaa Pythonin vakiokehotteen >>>. Katso myös sys.ps2 jatkokehotetta varten.

sys.ps2: str

Muutettava attribuutti, joka sisältää REPL-jatkokehotteessa käytettävän merkkijonon. Oletus antaa Pythonin vakiokehotteen .... Katso myös sys.ps1 ensisijaista kehotetta varten.

sys.stderr: object

Vakiovirhe-stream.

sys.stdin: object

Vakiosyöte-stream.

sys.stdout: object

Vakiotuloste-stream.

sys.tracebacklimit: int

Muutettava attribuutti, joka sisältää kokonaislukuarvon, joka on poikkeukseen tallennettavien jäljitysmerkintöjen enimmäismäärä. Aseta arvoon 0 poistaaksesi jäljitysten lisäämisen käytöstä. Oletusarvo on 1000.

Huomaa: tämä attribuutti ei ole käytettävissä OpenMV Cam -laitteessa.

sys.version: str

Python-kielen versio, jota tämä toteutus noudattaa, merkkijonona.

sys.version_info: tuple

Python-kielen versio, jota tämä toteutus noudattaa, kokonaislukujen monikkona.

Ero CPythoniin

Vain kolmea ensimmäistä versionumeroa (major, minor, micro) tuetaan, ja niihin voi viitata vain indeksillä, ei nimellä.