sys — sisteme özgü işlevler

Bu modül, komut satırı argümanları, modül arama yolu, standart akışlar ve çalışan uygulama hakkındaki bilgiler dahil olmak üzere yorumlayıcıya özgü değişkenlere ve işlevlere erişim sağlar.

İşlevler

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

Geçerli programı verilen bir çıkış koduyla sonlandırır. Bu işlev, içeride bir SystemExit istisnası fırlatır. Bir argüman verilirse, değeri SystemExit istisnasına argüman olarak iletilir.

OpenMV Cam üzerinde, işlenmemiş bir SystemExit istisnası şu anda MicroPython’un bir Yazılımsal Sıfırlama işlemine yol açar.

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

func işlevini sonlandırma sırasında çağrılmak üzere kaydeder. func, hiçbir argüman almayan çağrılabilir bir nesne olmalıdır veya çağrıyı devre dışı bırakmak için None olmalıdır. atexit işlevi, bu işlev tarafından önceden ayarlanan değeri döndürür; bu değer başlangıçta None olur.

CPython’dan Farkı

Bu işlev, CPython’daki atexit modülüne benzer bir işlevsellik sağlamayı amaçlayan bir MicroPython uzantısıdır.

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

Bir istisnayı geri izlemesiyle (traceback) birlikte dosya benzeri bir file nesnesine (veya varsayılan olarak sys.stdout öğesine) yazdırır.

CPython’dan Farkı

Bu, CPython’daki traceback modülünde yer alan bir işlevin basitleştirilmiş bir sürümüdür. traceback.print_exception() işlevinin aksine, bu işlev istisna türü, istisna değeri ve geri izleme nesnesi yerine yalnızca istisna değerini alır; file argümanı konumsal olmalıdır; başka argümanlar desteklenmez. CPython uyumlu traceback modülü micropython-lib içinde bulunabilir.

sys.settrace(tracefunc: Callable | None) None

Bayt kodu yürütmesinin izlenmesini etkinleştirir. Ayrıntılar için bkz. CPython belgeleri.

Bu işlev OpenMV Cam üzerinde kullanılamaz. Kod yürütmesini yavaşlattığı için varsayılan olarak devre dışıdır; etkinleştirmek için özel aygıt yazılımı (firmware) derlemek gerekir.

Sabitler

sys.argv: list[str]

Geçerli programın başlatıldığı argümanların değiştirilebilir bir listesi.

sys.byteorder: str

Sistemin bayt sırası ("little" veya "big").

sys.implementation: object

Geçerli Python uygulaması hakkında bilgi içeren nesne. MicroPython için aşağıdaki özniteliklere sahiptir:

  • name - “micropython” dizesi

  • version - demet (major, minor, micro, releaselevel), örneğin (1, 22, 0, ‘’)

  • _machine - temeldeki makineyi tanımlayan dize

  • _mpy - desteklenen mpy dosya biçimi sürümü (isteğe bağlı öznitelik)

  • _build - MicroPython’un hangi yapılandırmayla derlendiğini belirlemeye yardımcı olabilecek dize

  • _thread - isteğe bağlı dize özniteliği; hedef iş parçacığı (threading) desteğine sahipse vardır ve “GIL” ya da “unsafe” değerlerinden birini alır

Bu nesne, MicroPython’u diğer Python uygulamalarından ayırt etmek için önerilen yoldur (yine de çok minimal portlarda bulunmayabileceğini unutmayın).

Sürüm 1.22.0-preview’dan itibaren, implementation.version içindeki dördüncü düğüm olan releaselevel, ya boş bir dize ya da "preview" değerini alır.

_build girişi sürüm 1.25.0’da eklenmiştir ve tireyle ayrılmış bir öğe kümesidir. Gelecekte yeni öğeler eklenebileceğinden, bu alana sys.implementation._build.split("-") kullanarak erişmek en iyisidir. Şu anda kullanılan öğeler şunlardır:

  • OpenMV Cam üzerinde ilk öğe kart adıdır ve ikinci öğe (varsa) kart varyantıdır.

_thread girişi sürüm 1.26.0’da eklenmiştir ve eğer varsa, hedef _thread modülüne sahip demektir. Hedef GIL’i (global interpreter lock) etkinleştiriyorsa bu öznitelik "GIL" olur. Aksi takdirde öznitelik "unsafe" olur ve hedef iş parçacığı desteğine sahip olsa da GIL’i etkinleştirmez; iş parçacıkları arasında paylaşılan değiştirilebilir Python nesneleri (örneğin bytearray, list ve dict) _thread.allocate_lock gibi kilitlerle açıkça korunmalıdır.

CPython’dan Farkı

CPython bu nesne için daha fazla öznitelik zorunlu kılar, ancak gerçekten yararlı olan asgari kısım MicroPython’da uygulanmıştır.

sys.maxsize: int

Geçerli platformda yerel bir tamsayı türünün tutabileceği maksimum değer veya platformun maksimum değerinden küçükse MicroPython tamsayı türüyle gösterilebilen maksimum değer (uzun tamsayı desteği olmayan MicroPython portları için durum böyledir).

Bu öznitelik, bir platformun “bit genişliğini” (32-bit, 64-bit vb.) algılamak için yararlıdır. Bu özniteliği doğrudan bir değerle karşılaştırmak yerine, içindeki bit sayısını saymanız önerilir:

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

Yüklenen modüllerin sözlüğü. OpenMV Cam üzerinde buna yerleşik modüller dahil değildir.

sys.path: list[str]

İçe aktarılan modüllerin aranacağı dizinlerin değiştirilebilir bir listesi.

CPython’dan Farkı

MicroPython’da, değeri ".frozen" olan bir giriş, içe aktarmanın arama sırasında o noktada donmuş modülleri aramasını gerektiğini belirtir. Donmuş bir modül bulunamazsa, arama .frozen adlı bir dizini aramaz; bunun yerine sys.path içindeki bir sonraki girişle devam eder.

sys.platform: str

MicroPython’un üzerinde çalıştığı platform. Bu, port/karta göre tanımlanan bir dizedir – örneğin OpenMV RT1060 üzerinde "mimxrt" ve OpenMV AE3 üzerinde "alif" (bazı eski OpenMV Cam’ler "OpenMV4-H7" gibi modele özgü bir dize bildirir). Programınızın MicroPython üzerinde (başka bir Python uygulamasının aksine) çalışıp çalışmadığını kontrol etmek için bunun yerine sys.implementation kullanın.

sys.ps1: str

Birincil REPL isteminde kullanılan dizeyi tutan değiştirilebilir öznitelik. Varsayılan, standart Python istemi olan >>> değerini verir. Devam istemi için ayrıca bkz. sys.ps2.

sys.ps2: str

REPL devam isteminde kullanılan dizeyi tutan değiştirilebilir öznitelik. Varsayılan, standart Python istemi olan ... değerini verir. Birincil istem için ayrıca bkz. sys.ps1.

sys.stderr: object

Standart hata stream (akışı).

sys.stdin: object

Standart giriş stream (akışı).

sys.stdout: object

Standart çıkış stream (akışı).

sys.tracebacklimit: int

Bir istisnada saklanacak maksimum geri izleme girişi sayısını belirten bir tamsayı değeri tutan değiştirilebilir öznitelik. Geri izlemelerin eklenmesini devre dışı bırakmak için 0 olarak ayarlayın. Varsayılan değer 1000’dir.

Not: bu öznitelik OpenMV Cam üzerinde kullanılamaz.

sys.version: str

Bu uygulamanın uyduğu Python dil sürümü, bir dize olarak.

sys.version_info: tuple

Bu uygulamanın uyduğu Python dil sürümü, bir tamsayı demeti olarak.

CPython’dan Farkı

Yalnızca ilk üç sürüm numarası (major, minor, micro) desteklenir ve bunlara yalnızca dizine göre erişilebilir, ada göre değil.