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
SystemExitistisnası fırlatır. Bir argüman verilirse, değeriSystemExitistisnasına argüman olarak iletilir.OpenMV Cam üzerinde, işlenmemiş bir
SystemExitistisnası ş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
Noneolmalıdır.atexitişlevi, bu işlev tarafından önceden ayarlanan değeri döndürür; bu değer başlangıçtaNoneolur.CPython’dan Farkı
Bu işlev, CPython’daki
atexitmodü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
tracebackmodü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 uyumlutracebackmodülümicropython-libiç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.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
_threadmodü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ğinbytearray,listvedict)_thread.allocate_lockgibi 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.frozenadlı bir dizini aramaz; bunun yerinesys.pathiç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 yerinesys.implementationkullanı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.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.