sys — Systemspecifika parametrar och funktioner¶
Denna modul ger tillgång till vissa variabler som används eller underhålls av tolken och till funktioner som interagerar starkt med tolken. Den är alltid tillgänglig. Om inte annat uttryckligen anges är alla variabler skrivskyddade.
- sys.abiflags¶
På POSIX-system där Python byggdes med standardskriptet
configureinnehåller detta ABI-flaggorna som anges av PEP 3149.Tillagd i version 3.2.
Ändrad i version 3.8: Standardflaggorna blev en tom sträng (
m-flaggan för pymalloc har tagits bort).Tillgänglighet: Unix.
- sys.addaudithook(hook)¶
Lägg till den anropsbara hook till listan över aktiva revisionskrokar för den aktuella (under)tolken.
När en granskningshändelse utlöses genom funktionen
sys.audit()kommer varje hook att anropas i den ordning den lades till med händelsens namn och tupeln av argument. Inhemska hooks som lagts till avPySys_AddAuditHook()anropas först, följt av hooks som lagts till i den aktuella (under)tolken. Hooks kan sedan logga händelsen, skapa ett undantag för att avbryta operationen eller avsluta processen helt och hållet.Observera att audit hooks främst är till för att samla in information om interna eller på annat sätt icke observerbara åtgärder, oavsett om de utförs av Python eller bibliotek skrivna i Python. De är inte lämpliga för att implementera en ”sandlåda”. I synnerhet kan skadlig kod trivialt inaktivera eller kringgå hooks som läggs till med denna funktion. Som ett minimum måste alla säkerhetskänsliga hooks läggas till med hjälp av C API
PySys_AddAuditHook()innan körtiden initialiseras, och alla moduler som tillåter godtycklig minnesmodifiering (t.ex.ctypes) bör tas bort helt eller övervakas noga.Anrop av
sys.addaudithook()kommer i sig att skapa en granskningshändelse med namnetsys.addaudithookutan argument. Om någon befintlig hook ger upphov till ett undantag som härrör frånRuntimeError, kommer den nya hooken inte att läggas till och undantaget kommer att undertryckas. Följaktligen kan anropare inte anta att deras hook har lagts till om de inte kontrollerar alla befintliga hooks.Se audit events table för alla händelser som tagits upp av CPython, och PEP 578 för den ursprungliga designdiskussionen.
Tillagd i version 3.8.
Ändrad i version 3.8.1: Undantag som härrör från
Exceptionmen inte frånRuntimeErrorundertrycks inte längre.När spårning är aktiverat (se
settrace()), spåras Python-hooks endast om den anropsbara har en__cantrace__-medlem som är satt till ett sant värde. Annars kommer spårningsfunktioner att hoppa över hooken.
- sys.argv¶
Listan med kommandoradsargument som skickas till ett Python-skript.
argv[0]är skriptnamnet (det beror på operativsystemet om det är ett fullständigt sökvägsnamn eller inte). Om kommandot utfördes med kommandoradsalternativet-ctill tolken, sättsargv[0]till strängen'-c'. Om inget skriptnamn skickades till Python-tolken ärargv[0]den tomma strängen.För att loopa över standardinmatningen eller listan med filer som anges på kommandoraden, se modulen
fileinput.Se även
sys.orig_argv.Anteckning
På Unix skickas kommandoradsargument med byte från operativsystemet. Python avkodar dem med filsystemkodning och felhanteraren ”surrogateescape”. När du behöver originalbytes kan du få det genom
[os.fsencode(arg) for arg in sys.argv].
- sys.audit(event, *args)¶
Utlöser en granskningshändelse och aktiverar eventuella aktiva gransknings-hooks. event är en sträng som identifierar händelsen och args kan innehålla valfria argument med mer information om händelsen. Antalet och typerna av argument för en viss händelse betraktas som ett offentligt och stabilt API och bör inte ändras mellan releaser.
En granskningshändelse heter till exempel
os.chdir. Denna händelse har ett argument som heter path som innehåller den begärda nya arbetskatalogen.sys.audit()anropar de befintliga revisionskrokarna, skickar händelsens namn och argument, och gör om det första undantaget från någon hook. I allmänhet gäller att om ett undantag uppstår ska det inte hanteras och processen ska avslutas så snabbt som möjligt. Detta gör det möjligt för krokimplementationer att bestämma hur de ska reagera på särskilda händelser: de kan bara logga händelsen eller avbryta operationen genom att lyfta ett undantag.Hooks läggs till med hjälp av funktionerna
sys.addaudithook()ellerPySys_AddAuditHook().Den ursprungliga motsvarigheten till denna funktion är
PySys_Audit(). Att använda den ursprungliga funktionen är att föredra när det är möjligt.Se audit events table för alla händelser som CPython har orsakat.
Tillagd i version 3.8.
- sys.base_exec_prefix¶
Motsvarar
exec_prefix, men hänvisar till basinstallationen av Python.När du kör under Virtuella miljöer skrivs
exec_prefixöver till prefixet för den virtuella miljön.base_exec_prefixändras däremot inte och pekar alltid på basinstallationen av Python. Se Virtuella miljöer för mer information.Tillagd i version 3.3.
- sys.base_prefix¶
Motsvarar
prefix, men hänvisar till basinstallationen av Python.När du kör under virtuell miljö, skrivs
prefixöver till prefixet för den virtuella miljön.base_prefixändras däremot inte och pekar alltid på Python-basinstallationen. Se Virtuella miljöer för mer information.Tillagd i version 3.3.
- sys.byteorder¶
En indikator på den ursprungliga byteordningen. Detta kommer att ha värdet
'big'på big-endian (mest betydelsefulla byte först) plattformar, och'little'på little-endian (minst betydelsefulla byte först) plattformar.
- sys.builtin_module_names¶
En tupel av strängar som innehåller namnen på alla moduler som är kompilerade till denna Python-tolk. (Denna information är inte tillgänglig på något annat sätt —
modules.keys()listar bara de importerade modulerna)Se även listan
sys.stdlib_module_names.
- sys.call_tracing(func, args)¶
Anropa
func(*args), medan spårning är aktiverad. Spårningstillståndet sparas och återställs efteråt. Detta är avsett att anropas från en debugger från en kontrollpunkt, för att rekursivt debugga eller profilera annan kod.Spårningen avbryts när du anropar en spårningsfunktion som ställts in av
settrace()ellersetprofile()för att undvika oändlig rekursion.call_tracing()aktiverar explicit rekursion av spårningsfunktionen.
- sys.copyright¶
En sträng som innehåller den upphovsrätt som gäller för Python-tolken.
- sys._clear_type_cache()¶
Rensa den interna typcachen. Typcachen används för att påskynda uppslagningar av attribut och metoder. Använd funktionen endast för att ta bort onödiga referenser vid felsökning av referensläckor.
Denna funktion bör endast användas för interna och specialiserade ändamål.
Föråldrad sedan version 3.13: Använd istället den mer generella funktionen
_clear_internal_caches().
- sys._clear_internal_caches()¶
Rensa alla interna prestandarelaterade cacheminnen. Använd denna funktion endast för att frigöra onödiga referenser och minnesblock när du letar efter läckor.
Tillagd i version 3.13.
- sys._current_frames()¶
Returnerar en ordbok som mappar varje tråds identifierare till den översta stackram som är aktiv i den tråden när funktionen anropas. Observera att funktioner i modulen
tracebackkan bygga anropsstacken med hjälp av en sådan ram.Detta är mest användbart för felsökning av dödlåsning: funktionen kräver inte att de dödlåsta trådarna samarbetar, och dessa trådars anropsstaplar fryses så länge de är dödlåsta. Den ram som returneras för en icke-dödlåst tråd kanske inte har något samband med den trådens aktuella aktivitet när den anropande koden undersöker ramen.
Denna funktion bör endast användas för interna och specialiserade ändamål.
Utlöser en auditing event
sys._current_framesutan argument.
- sys._current_exceptions()¶
Returnerar en ordbok som mappar varje tråds identifierare till det översta undantaget som för närvarande är aktivt i den tråden när funktionen anropas. Om en tråd inte hanterar ett undantag för närvarande ingår den inte i resultatordlistan.
Detta är mest användbart för statistisk profilering.
Denna funktion bör endast användas för interna och specialiserade ändamål.
Utlöser en auditing event
sys._current_exceptionsutan argument.Ändrad i version 3.12: Varje värde i ordlistan är nu en enda undantagsinstans, snarare än en 3-tupel som returneras från
sys.exc_info().
- sys.breakpointhook()¶
Denna hook-funktion anropas av den inbyggda
breakpoint(). Som standard hamnar du ipdb-felsökaren, men den kan ställas in på vilken annan funktion som helst så att du kan välja vilken felsökare som ska användas.Signaturen för denna funktion är beroende av vad den anropar. Till exempel förväntar sig standardbindningen (t.ex.
pdb.set_trace()) inga argument, men du kan binda den till en funktion som förväntar sig ytterligare argument (positionella och/eller nyckelord). Den inbyggda funktionenbreakpoint()skickar sina*argsoch**kwsrakt igenom. Vad änbreakpointhooks()returnerar returneras frånbreakpoint().Standardimplementeringen konsulterar först miljövariabeln
PYTHONBREAKPOINT. Om den är satt till"0"så returnerar denna funktion omedelbart, dvs. det är en no-op. Om miljövariabeln inte är inställd, eller är inställd på den tomma strängen, anropaspdb.set_trace(). Annars bör denna variabel namnge en funktion som ska köras, med hjälp av Pythons nomenklatur för prickad import, t.ex.package.subpackage.module.function. I det här fallet skullepackage.subpackage.moduleimporteras och den resulterande modulen måste ha en callable med namnetfunction(). Detta körs, med*argsoch**kws, och vad änfunction()returnerar, returnerarsys.breakpointhook()till den inbyggdabreakpoint()-funktionen.Observera att om något går fel när du importerar den anropsbarhet som anges av
PYTHONBREAKPOINT, rapporteras enRuntimeWarningoch brytpunkten ignoreras.Observera också att om
sys.breakpointhook()åsidosätts programmatiskt, kommerPYTHONBREAKPOINTinte att konsulteras.Tillagd i version 3.7.
- sys._debugmallocstats()¶
Skriv ut lågnivåinformation till stderr om tillståndet för CPythons minnesallokator.
Om Python är byggd i debugläge (
configure --with-pydebug option), utför den också några dyra interna konsistenskontroller.Tillagd i version 3.3.
Denna funktion är specifik för CPython. Det exakta utdataformatet definieras inte här och kan komma att ändras.
- sys.dllhandle¶
Heltal som anger handtaget för Python DLL.
Tillgänglighet: Windows.
- sys.displayhook(value)¶
Om värde inte är
None, skriver denna funktion utrepr(value)tillsys.stdout, och sparar värde ibuiltins._. Omrepr(value)inte kan kodas tillsys.stdout.encodingmedsys.stdout.errorsfelhanterare (som förmodligen är'strict'), kodas det tillsys.stdout.encodingmed'backslashreplace'felhanterare.sys.displayhookanropas vid resultatet av utvärderingen av en expression som angetts i en interaktiv Python-session. Visningen av dessa värden kan anpassas genom att tilldela en annan funktion med ett argument tillsys.displayhook.Pseudokod:
def displayhook(värde): om värdet är None: retur # Sätt '_' till None för att undvika rekursion builtins._ = Ingen text = repr(värde) försök: sys.stdout.write(text) except UnicodeEncodeError: bytes = text.encode(sys.stdout.encoding, 'backslashreplace') if hasattr(sys.stdout, 'buffer'): sys.stdout.buffer.write(bytes) else: text = bytes.decode(sys.stdout.encoding, 'strict') sys.stdout.write(text) sys.stdout.write("\n") inbyggda._ = värde
Ändrad i version 3.2: Använd felhanteraren
'backslashreplace'påUnicodeEncodeError.
- sys.dont_write_bytecode¶
Om detta är sant kommer Python inte att försöka skriva
.pyc-filer vid import av källmoduler. Detta värde är initialt inställt påTrueellerFalseberoende på kommandoradsalternativet-Boch miljövariabelnPYTHONDONTWRITEBYTECODE, men du kan ställa in det själv för att kontrollera generering av bytecode-filer.
- sys._emscripten_info¶
En named tuple som innehåller information om miljön på wasm32-emscripten-plattformen. Den namngivna tupeln är preliminär och kan komma att ändras i framtiden.
- _emscripten_info.emscripten_version¶
Emscripten-version som tupel av ints (major, minor, micro), t.ex.
(3, 1, 8).
- _emscripten_info.runtime¶
Körtidssträng, t.ex. webbläsarens användaragent,
'Node.js v14.18.2'eller'UNKNOWN'.
- _emscripten_info.pthreads¶
Trueom Python är kompilerat med Emscriptens stöd för pthreads.
Trueom Python är kompilerad med stöd för delat minne.
Tillgänglighet: Emscripten.
Tillagd i version 3.11.
- sys.pycache_prefix¶
Om detta är inställt (inte
None), kommer Python att skriva bytecode-cache.pyc-filer till (och läsa dem från) ett parallellt katalogträd med rot i denna katalog, snarare än från__pycache__-kataloger i källkodsträdet. Alla__pycache__-kataloger i källkodsträdet kommer att ignoreras och nya.pyc-filer skrivs inom pycache-prefixet. Om du användercompileallsom ett förbyggnadssteg måste du alltså se till att du kör det med samma pycache-prefix (om något) som du kommer att använda vid körning.En relativ sökväg tolkas i förhållande till den aktuella arbetskatalogen.
Detta värde ställs in initialt baserat på värdet för kommandoradsalternativet
-Xpycache_prefix=PATHeller miljövariabelnPYTHONPYCACHEPREFIX(kommandoraden har företräde). Om ingen av dem är inställd är denNone.Tillagd i version 3.8.
- sys.excepthook(type, value, traceback)¶
Denna funktion skriver ut en given traceback och ett undantag till
sys.stderr.När ett annat undantag än
SystemExituppstår och inte fångas upp, anropar tolkensys.excepthookmed tre argument, undantagsklassen, undantagsinstansen och ett spårningsobjekt. I en interaktiv session sker detta precis innan kontrollen återgår till prompten; i ett Python-program sker detta precis innan programmet avslutas. Hanteringen av sådana undantag på högsta nivå kan anpassas genom att tilldela en annan funktion med tre argument tillsys.excepthook.Skapa en granskningshändelse
sys.excepthookmed argumentenhook,type,value,tracebacknär ett oavhandlat undantag inträffar. Om ingen hook har ställts in kanhookvaraNone. Om någon hook skapar ett undantag som härrör frånRuntimeErrorkommer anropet till hooken att undertryckas. I annat fall rapporteras revisions-hook-undantaget som omöjligt att generera ochsys.excepthookanropas.Se även
Funktionen
sys.unraisablehook()hanterar undantag som inte kan bedömas och funktionenthreading.excepthook()hanterar undantag som orsakas avthreading.Thread.run().
- sys.__breakpointhook__¶
- sys.__displayhook__¶
- sys.__excepthook__¶
- sys.__unraisablehook__¶
Dessa objekt innehåller originalvärdena för
breakpointhook,displayhook,excepthookochunraisablehooki början av programmet. De sparas så attbreakpointhook,displayhookochexcepthook,unraisablehookkan återställas om de skulle råka ersättas med trasiga eller alternativa objekt.Tillagd i version 3.7: __breakpointhook__
Tillagd i version 3.8: oanvändbar hook
- sys.exception()¶
När denna funktion anropas medan en undantagshanterare körs (t.ex. en
except- ellerexcept*-sats) returneras den undantagsinstans som fångades upp av denna hanterare. När undantagshanterare är nästlade i varandra är det bara det undantag som hanteras av den innersta hanteraren som är åtkomligt.Om ingen undantagshanterare körs, returnerar denna funktion
None.Tillagd i version 3.11.
- sys.exc_info()¶
Denna funktion returnerar den gamla stilens representation av det hanterade undantaget. Om ett undantag
eför närvarande hanteras (så attexception()skulle returnerae), returnerarexc_info()tupeln(type(e), e, e.__traceback__). Det vill säga en tupel som innehåller typen av undantag (en underklass avBaseException), undantaget i sig och ett traceback-objekt som vanligtvis kapslar in anropsstacken vid den punkt där undantaget senast inträffade.Om inget undantag hanteras någonstans på stacken, returnerar denna funktion en tupel som innehåller tre
None-värden.Ändrad i version 3.11: Fälten
typeochtracebackhärleds nu frånvalue(undantagsinstansen), så när ett undantag ändras medan det hanteras återspeglas ändringarna i resultaten av efterföljande anrop tillexc_info().
- sys.exec_prefix¶
En sträng som anger det platsspecifika katalogprefix där de plattformsberoende Python-filerna installeras; som standard är detta också
'/usr/local'. Detta kan ställas in vid byggtiden med argumentet\--exec-prefixtill skriptet configure. Specifikt installeras alla konfigurationsfiler (t.ex. huvudfilenpyconfig.h) i katalogenexec_prefix/lib/pythonX.Y/config, och delade biblioteksmoduler installeras iexec_prefix/lib/pythonX.Y/lib-dynload, där X.Y är versionsnumret för Python, t.ex.3.2.Anteckning
Om en virtuell miljö är i kraft kommer detta
exec_prefixatt peka på den virtuella miljön. Värdet för Python-installationen kommer fortfarande att vara tillgängligt viabase_exec_prefix. Se Virtuella miljöer för mer information.Ändrad i version 3.14: Vid körning under en virtuell miljö, sätts nu
prefixochexec_prefixtill prefixet för den virtuella miljön av path initialization, istället försite. Detta innebär attprefixochexec_prefixalltid pekar på den virtuella miljön, även närsiteär inaktiverat (-S).
- sys.executable¶
En sträng som anger den absoluta sökvägen till den körbara binärfilen för Python-tolken, på system där detta är meningsfullt. Om Python inte kan hämta den verkliga sökvägen till sin exekverbara fil, kommer
sys.executableatt vara en tom sträng ellerNone.
- sys.exit([arg])¶
Utlöser ett
SystemExit-undantag, som signalerar en avsikt att avsluta tolken.Det valfria argumentet arg kan vara ett heltal som anger avslutningsstatus (standard är noll) eller en annan typ av objekt. Om det är ett heltal betraktas noll som ”lyckad avslutning” och alla värden som inte är noll betraktas som ”onormal avslutning” av skal och liknande. De flesta system kräver att det ligger i intervallet 0–127 och ger odefinierade resultat annars. Vissa system har en konvention för att tilldela specifika betydelser till specifika utgångskoder, men dessa är i allmänhet underutvecklade; Unix-program använder i allmänhet 2 för syntaxfel på kommandoraden och 1 för alla andra typer av fel. Om en annan typ av objekt skickas, är
Nonelikvärdigt med att skicka noll, och alla andra objekt skrivs ut tillstderroch resulterar i en utgångskod på 1. I synnerhet ärsys.exit("some error message")ett snabbt sätt att avsluta ett program när ett fel inträffar.Eftersom
exit()i slutändan ”bara” ger upphov till ett undantag, kommer den bara att avsluta processen när den anropas från huvudtråden, och undantaget fångas inte upp. Rensningsåtgärder som specificeras av finally-klausuler itry-satser respekteras, och det är möjligt att fånga upp avslutningsförsöket på en yttre nivå.Ändrad i version 3.6: Om ett fel inträffar i upprensningen efter att Python-tolken har fångat
SystemExit(t.ex. ett fel vid rensning av buffrade data i standardströmmarna), ändras utgångsstatus till 120.
- sys.flags¶
named tuple flags visar status för kommandoradsflaggor. Flaggor bör endast nås via namn och inte via index. Attributen är skrivskyddade.
- flags.debug¶
- flags.inspect¶
- flags.interactive¶
- flags.isolated¶
- flags.optimize¶
- flags.dont_write_bytecode¶
- flags.no_user_site¶
- flags.no_site¶
- flags.ignore_environment¶
- flags.verbose¶
- flags.bytes_warning¶
- flags.quiet¶
- flags.hash_randomization¶
- flags.dev_mode¶
- flags.utf8_mode¶
- flags.safe_path¶
- flags.int_max_str_digits¶
-X int_max_str_digits(begränsning av längd vid konvertering av heltalssträngar)- flags.warn_default_encoding¶
- flags.gil¶
-X gilochPYTHON_GIL- flags.thread_inherit_context¶
- flags.context_aware_warnings¶
Ändrad i version 3.2: Lagt till attributet
quietför den nya flaggan-q.Tillagd i version 3.2.3: Attributet
hash_randomization.Ändrad i version 3.3: Borttaget föråldrat attribut
division_warning.Ändrad i version 3.4: Lagt till attributet
isolatedför flaggan-Iisolated.Ändrad i version 3.7: Lade till attributet
dev_modeför den nya Python Development Mode och attributetutf8_modeför den nya-Xutf8flaggan.Ändrad i version 3.10: Lagt till attributet
warn_default_encodingför-Xflagganwarn_default_encoding.Ändrad i version 3.11: Lagt till attributet
safe_pathför-Poption.Ändrad i version 3.11: Lagt till attributet
int_max_str_digits.Ändrad i version 3.13: Lagt till attributet
gil.Ändrad i version 3.14: Lagt till attributet
thread_inherit_context.Ändrad i version 3.14: Lagt till attributet
context_aware_warnings.
- sys.float_info¶
En named tuple som innehåller information om float-typen. Den innehåller lågnivåinformation om precisionen och den interna representationen. Värdena motsvarar de olika flyttalskonstanter som definieras i standardhuvudfilen
float.hför programmeringsspråket ’C’; se avsnitt 5.2.4.2.2 i 1999 års ISO/IEC C-standard [C99], ’Characteristics of floating types’, för detaljer.Attribut för float_infonamed tuple¶attribut
float.h makro
förklaring
- float_info.epsilon¶
DBL_EPSILONskillnaden mellan 1,0 och det minsta värde som är större än 1,0 och som kan representeras som en float.
Se även
math.ulp().- float_info.dig¶
DBL_DIGDet maximala antalet decimaler som kan representeras på ett korrekt sätt i en float; se nedan.
- float_info.mant_dig¶
DBL_MANT_DIGFloatprecision: antalet bas-
radixsiffror i signifikanten för en float.- float_info.max¶
DBL_MAXDen maximalt representerbara positiva finita floaten.
- float_info.max_exp¶
DBL_MAX_EXPDet maximala heltalet e så att
radix**(e-1)är en representerbar ändlig float.- float_info.max_10_exp¶
DBL_MAX_10_EXPDet maximala heltalet e så att
10**eligger inom intervallet för representerbara finita flyttal.- float_info.min¶
DBL_MINDen minsta representativa positiva normaliserade floaten.
Använd
math.ulp(0.0)för att få den minsta positiva denormaliserade representerbara flottören.- float_info.min_exp¶
DBL_MIN_EXPDet minsta heltalet e som gör att
radix**(e-1)är ett normaliserat flyttal.- float_info.min_10_exp¶
DBL_MIN_10_EXPDet minsta heltalet e som gör att
10**eär ett normaliserat flyttal.- float_info.radix¶
FLT_RADIXRadix för representation av exponent.
- float_info.rounds¶
FLT_ROUNDSEtt heltal som representerar avrundningsläget för aritmetik med flyttal. Detta återspeglar värdet på systemets
FLT_ROUNDS-makro vid tolkens starttidpunkt:\-1: obestämbar0: mot noll1: till närmaste2: mot positiv oändlighet3: mot negativ oändlighet
Alla andra värden för
FLT_ROUNDSkarakteriserar implementationsdefinierat avrundningsbeteende.Attributet
sys.float_info.digbehöver ytterligare förklaring. Omsär en sträng som representerar ett decimaltal med högstsys.float_info.digsignifikanta siffror, kommer konvertering avstill ett float-tal och tillbaka igen att återställa en sträng som representerar samma decimaltal:>>> import sys >>> sys.float_info.dig 15 >>> s = '3.14159265358979' # decimal string with 15 significant digits >>> format(float(s), '.15g') # convert to float and back -> same value '3.14159265358979'
Men för strängar med fler än
sys.float_info.digsignifikanta siffror är detta inte alltid sant:>>> s = '9876543211234567' # 16 significant digits is too many! >>> format(float(s), '.16g') # conversion changes value '9876543211234568'
- sys.float_repr_style¶
En sträng som anger hur funktionen
repr()beter sig för float. Om strängen har värdet'short'så skarepr(x)för en ändlig floatxproducera en kort sträng med egenskapen attfloat(repr(x)) == x. Detta är det vanliga beteendet i Python 3.1 och senare. Annars harfloat_repr_stylevärdet'legacy'ochrepr(x)beter sig på samma sätt som det gjorde i versioner av Python före 3.1.Tillagd i version 3.1.
- sys.getallocatedblocks()¶
Returnerar antalet minnesblock som för närvarande allokeras av tolken, oavsett storlek. Denna funktion är främst användbar för att spåra och felsöka minnesläckor. På grund av tolkens interna cacheminnen kan resultatet variera från anrop till anrop; du kan behöva anropa
_clear_internal_caches()ochgc.collect()för att få mer förutsägbara resultat.Om en Python-byggnad eller implementering inte rimligen kan beräkna denna information, får
getallocatedblocks()returnera 0 istället.Tillagd i version 3.4.
- sys.getunicodeinternedsize()¶
Returnerar antalet unicode-objekt som har internaliserats.
Tillagd i version 3.12.
- sys.getandroidapilevel()¶
Returnerar API-nivån för Android under byggtiden som ett heltal. Detta representerar den minsta versionen av Android som den här versionen av Python kan köras på. För information om körtidsversion, se
platform.android_ver().Tillgänglighet: Android.
Tillagd i version 3.7.
- sys.getdefaultencoding()¶
Returnerar
'utf-8'. Detta är namnet på standardkodningen för strängar, som används i metoder somstr.encode().
- sys.getdlopenflags()¶
Returnerar det aktuella värdet för de flaggor som används för
dlopen()-anrop. Symboliska namn för flaggvärdena finns i modulenos(RTLD_xxx-konstanter, t.ex.os.RTLD_LAZY).Tillgänglighet: Unix.
- sys.getfilesystemencoding()¶
Hämta filsystemskodning: den kodning som används med filsystem error handler för att konvertera mellan Unicode-filnamn och bytes-filnamn. Filsystemets felhanterare returneras från
getfilesystemencodeerrors().För bästa kompatibilitet bör str användas för filnamn i samtliga fall, även om det också finns stöd för att representera filnamn som bytes. Funktioner som tar emot eller returnerar filnamn bör stödja antingen str eller bytes och internt konvertera till den representation som systemet föredrar.
os.fsencode()ochos.fsdecode()bör användas för att säkerställa att rätt kodning och felmodus används.filesystem encoding and error handler konfigureras vid Python-start av funktionen
PyConfig_Read(): sefilesystem_encodingochfilesystem_errorsiPyConfig.Ändrad i version 3.2:
getfilesystemencoding()resultat kan inte varaNonelängre.Ändrad i version 3.6: Windows är inte längre garanterat att returnera
'mbcs'. Se PEP 529 och_enablelegacywindowsfsencoding()för mer information.Ändrad i version 3.7: Returnerar
'utf-8'om Python UTF-8 Mode är aktiverat.
- sys.getfilesystemencodeerrors()¶
Hämta filsystemets felhanterare: den felhanterare som används med filsystemets kodning för att konvertera mellan Unicode-filnamn och bytes-filnamn. Filsystemets kodning returneras från
getfilesystemencoding().os.fsencode()ochos.fsdecode()bör användas för att säkerställa att rätt kodning och felmodus används.filesystem encoding and error handler konfigureras vid Python-start av funktionen
PyConfig_Read(): sefilesystem_encodingochfilesystem_errorsiPyConfig.Tillagd i version 3.6.
- sys.get_int_max_str_digits()¶
Returnerar det aktuella värdet för integer string conversion length limitation. Se även
set_int_max_str_digits().Tillagd i version 3.11.
- sys.getrefcount(object)¶
Returnerar referensantalet för objektet. Det antal som returneras är i allmänhet ett högre än vad du kan förvänta dig, eftersom det inkluderar den (tillfälliga) referensen som ett argument till
getrefcount().Observera att det returnerade värdet kanske inte återspeglar hur många referenser till objektet som faktiskt finns. Vissa objekt är t.ex. immortal och har ett mycket högt refcount som inte återspeglar det faktiska antalet referenser. Förlita dig därför inte på att det returnerade värdet är korrekt, annat än ett värde på 0 eller 1.
Immortal objekt med ett stort antal referenser kan identifieras via
_is_immortal().Ändrad i version 3.12: Odödliga objekt har mycket stora refcounts som inte stämmer överens med det faktiska antalet referenser till objektet.
- sys.getrecursionlimit()¶
Returnerar det aktuella värdet för rekursionsgränsen, det maximala djupet på Python-tolkens stack. Denna gräns förhindrar att oändlig rekursion orsakar ett överflöd av C-stacken och kraschar Python. Den kan ställas in med
setrecursionlimit().
- sys.getsizeof(object[, default])¶
Returnerar storleken på ett objekt i bytes. Objektet kan vara vilken typ av objekt som helst. Alla inbyggda objekt kommer att returnera korrekta resultat, men detta behöver inte gälla för tredjepartstillägg eftersom det är implementationsspecifikt.
Endast den minnesförbrukning som är direkt hänförlig till objektet redovisas, inte minnesförbrukningen för de objekt som det hänvisar till.
Om den anges kommer default att returneras om objektet inte tillhandahåller något sätt att hämta storleken. Annars kommer ett
TypeErroratt returneras.getsizeof()anropar objektets__sizeof__-metod och lägger till ytterligare en sopsamlarfunktion om objektet hanteras av sopsamlaren.Se recursive sizeof recipe för ett exempel på hur man använder
getsizeof()rekursivt för att ta reda på storleken på behållare och allt deras innehåll.
- sys.getswitchinterval()¶
Returnerar tolkens ”trådbytesintervall” i sekunder; se
setswitchinterval().Tillagd i version 3.2.
- sys._getframe([depth])¶
Returnerar ett ramobjekt från anropsstacken. Om det valfria heltalet depth anges, returneras ramobjektet så många anrop under toppen av stacken. Om det är djupare än anropsstacken, kommer
ValueErroratt uppstå. Standardvärdet för depth är noll, vilket returnerar ramen högst upp i anropsstacken.Utlöser en auditing event
sys._getframemed argumentetframe.Denna funktion bör endast användas för interna och specialiserade ändamål. Det är inte garanterat att den finns i alla implementationer av Python.
- sys._getframemodulename([depth])¶
Returnerar namnet på en modul från anropsstacken. Om det valfria heltalet depth anges, returneras modulen så många anrop under toppen av stacken. Om detta är djupare än anropsstacken, eller om modulen inte kan identifieras, returneras
None. Standardvärdet för depth är noll, vilket returnerar modulen högst upp i anropsstacken.Utlöser en auditing event
sys._getframemodulenamemed argumentetdepth.Denna funktion bör endast användas för interna och specialiserade ändamål. Det är inte garanterat att den finns i alla implementationer av Python.
Tillagd i version 3.12.
- sys.getobjects(limit[, type])¶
Den här funktionen finns bara om CPython byggdes med det specialiserade configure-alternativet
--with-trace-refs. Den är endast avsedd för felsökning av problem med garbage-collection.Returnerar en lista med upp till limit dynamiskt allokerade Python-objekt. Om type anges inkluderas endast objekt av den exakta typen (inte subtyper).
Objekt från listan är inte säkra att använda. I synnerhet kommer resultatet att innehålla objekt från alla tolkar som delar sitt objektallokeringstillstånd (det vill säga de som skapats med
PyInterpreterConfig.use_main_obmallocsatt till 1 eller medPy_NewInterpreter(), och main interpreter). Att blanda objekt från olika tolkar kan leda till krascher eller annat oväntat beteende.Denna funktion bör endast användas för specialiserade ändamål. Det är inte garanterat att den finns i alla implementationer av Python.
Ändrad i version 3.14: Resultatet kan innehålla objekt från andra tolkar.
- sys.getprofile()¶
Hämta den profileringsfunktion som ställts in av
setprofile().
- sys.gettrace()¶
Hämta spårningsfunktionen som den ställts in av
settrace().Funktionen
gettrace()är endast avsedd för implementering av debuggar, profilerare, täckningsverktyg och liknande. Dess beteende är en del av implementeringsplattformen, snarare än en del av språkdefinitionen, och är därför kanske inte tillgänglig i alla Python-implementeringar.
- sys.getwindowsversion()¶
Returnerar en namngiven tupel som beskriver den Windows-version som körs för närvarande. De namngivna elementen är major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type och platform_version. service_pack innehåller en sträng, platform_version en 3-tupel och alla andra värden är heltal. Komponenterna kan också nås via namn, så
sys.getwindowsversion()[0]är likvärdigt medsys.getwindowsversion().major. För kompatibilitet med tidigare versioner kan endast de första 5 elementen hämtas genom indexering.plattform kommer att vara
2(VER_PLATFORM_WIN32_NT).product_type kan vara ett av följande värden:
Konstant
Betydelse
1(VER_NT_WORKSTATION)Systemet är en arbetsstation.
2(VER_NT_DOMAIN_CONTROLLER)Systemet är en domänkontrollant.
3(VER_NT_SERVER)Systemet är en server, men inte en domänkontrollant.
Denna funktion omsluter Win32-funktionen
GetVersionEx(); se Microsoft-dokumentationen förOSVERSIONINFOEX()för mer information om dessa fält.platform_version returnerar major-versionen, minor-versionen och build-numret för det aktuella operativsystemet, i stället för den version som emuleras för processen. Den är avsedd att användas för loggning snarare än för funktionsdetektering.
Anteckning
platform_version härleder versionen från kernel32.dll som kan vara av en annan version än OS-versionen. Använd modulen
platformför att få en korrekt OS-version.Tillgänglighet: Windows.
Ändrad i version 3.2: Ändrat till en namngiven tupel och lagt till service_pack_minor, service_pack_major, suite_mask och product_type.
Ändrad i version 3.6: Lagt till plattform_version
- sys.get_asyncgen_hooks()¶
Returnerar ett asyncgen_hooks-objekt, som liknar en
namedtupleav formen(firstiter, finalizer), där firstiter och finalizer förväntas vara antingenNoneeller funktioner som tar en asynchronous generator iterator som argument, och används för att schemalägga slutförande av en asynkron generator med en händelseslinga.Tillagd i version 3.6: Se PEP 525 för mer information.
Anteckning
Denna funktion har lagts till på provisorisk basis (se PEP 411 för detaljer)
- sys.get_coroutine_origin_tracking_depth()¶
Hämta det aktuella spårningsdjupet för coroutine-ursprunget, enligt inställningen i
set_coroutine_origin_tracking_depth().Tillagd i version 3.7.
Anteckning
Denna funktion har lagts till tillfälligt (se PEP 411 för detaljer.) Använd den endast i felsökningssyfte.
- sys.hash_info¶
En named tuple som anger parametrar för implementeringen av numerisk hash. För mer information om hashing av numeriska typer, se Hashning av numeriska typer.
- hash_info.width¶
Bredden i bitar som används för hash-värden
- hash_info.modulus¶
Primtalsmodulen P som används för numeriskt hashschema
- hash_info.inf¶
Det hashvärde som returneras för en positiv oändlighet
- hash_info.nan¶
(Detta attribut används inte längre)
- hash_info.imag¶
Den multiplikator som används för imaginärdelen av ett komplext tal
- hash_info.algorithm¶
Namnet på algoritmen för hashing av str, bytes och memoryview
- hash_info.hash_bits¶
Hashalgoritmens interna utmatningsstorlek
- hash_info.seed_bits¶
Storleken på seed-nyckeln för hashalgoritmen
Tillagd i version 3.2.
Ändrad i version 3.4: Lagt till algoritm, hash_bits och seed_bits
- sys.hexversion¶
Versionsnumret kodat som ett heltal. Detta ökar garanterat med varje version, inklusive korrekt stöd för icke-produktionsversioner. Om du t.ex. vill testa att Python-tolken är minst version 1.5.2 använder du:
if sys.hexversion >= 0x010502F0: # använd någon avancerad funktion ... else: # använd en alternativ implementering eller varna användaren ...
Detta kallas
hexversioneftersom det egentligen bara ser meningsfullt ut när det ses som resultatet av att skicka det till den inbyggda funktionenhex(). named tuplesys.version_infokan användas för en mer människovänlig kodning av samma information.Mer information om
hexversionfinns på Versionering av API och ABI.
- sys.implementation¶
Ett objekt som innehåller information om implementeringen av den Python-tolk som körs för närvarande. Följande attribut måste finnas i alla Python-implementationer.
name är implementeringens identifierare, t.ex.
'cpython'. Den faktiska strängen definieras av Python-implementationen, men det är garanterat att den är gemener.version är en namngiven tupel, i samma format som
sys.version_info. Den representerar versionen av Python implementationen. Detta har en annan betydelse än den specifika versionen av Python språk som den aktuella tolken följer, somsys.version_inforepresenterar. Till exempel, för PyPy 1.8 kansys.implementation.versionvarasys.version_info(1, 8, 0, 'final', 0), medansys.version_infoskulle varasys.version_info(2, 7, 2, 'final', 0). För CPython är de samma värde, eftersom det är referensimplementationen.hexversion är implementationsversionen i hexadecimalt format, som
sys.hexversion.cache_tag är den tagg som används av importmaskineriet i filnamnen för cachade moduler. Enligt konvention skulle det vara en sammansättning av implementeringens namn och version, som
'cpython-33'. En Python-implementation kan dock använda något annat värde om det är lämpligt. Omcache_tagär satt tillNone, indikerar det att modulcachning bör inaktiveras.supports_isolated_interpreters är ett booleanskt värde som anger om implementationen stöder flera isolerade tolkar. Det är
Trueför CPython på de flesta plattformar. Plattformar med detta stöd implementerar lågnivåmodulen_interpreters.Se även
sys.implementationkan innehålla ytterligare attribut som är specifika för Python-implementationen. Dessa icke-standardiserade attribut måste börja med ett understreck och beskrivs inte här. Oavsett innehåll kommersys.implementationinte att ändras under en körning av tolken, eller mellan olika implementationsversioner. (Det kan dock ändras mellan Python-språkversioner.) Se PEP 421 för mer information.Tillagd i version 3.3.
Ändrad i version 3.14: Fältet
upports_isolated_interpretershar lagts till.Anteckning
Tillägg av nya obligatoriska attribut måste gå igenom den normala PEP-processen. Se PEP 421 för mer information.
- sys.int_info¶
En named tuple som innehåller information om Pythons interna representation av heltal. Attributen är skrivskyddade.
- int_info.bits_per_digit¶
Antalet bitar som finns i varje siffra. Pythons heltal lagras internt i basen
2**int_info.bits_per_digit.
- int_info.sizeof_digit¶
Storleken i bytes på den C-typ som används för att representera en siffra.
- int_info.default_max_str_digits¶
Standardvärdet för
sys.get_int_max_str_digits()när det inte uttryckligen har konfigurerats på annat sätt.
- int_info.str_digits_check_threshold¶
Det minsta värdet som inte är noll för
sys.set_int_max_str_digits(),PYTHONINTMAXSTRDIGITS, eller-X int_max_str_digits.
Tillagd i version 3.1.
Ändrad i version 3.11: Lagt till
default_max_str_digitsochstr_digits_check_threshold.
- sys.__interactivehook__¶
När detta attribut finns, anropas dess värde automatiskt (utan argument) när tolken startas i interaktivt läge. Detta görs efter att filen
PYTHONSTARTUPhar lästs, så att du kan ställa in den här hooken där. Modulensiteställer in detta.Utlöser en auditing event
cpython.run_interactivehookmed hook-objektet som argument när hooken anropas vid start.Tillagd i version 3.4.
- sys.intern(string)¶
Ange sträng i tabellen över ”internerade” strängar och returnera den internerade strängen - som är sträng själv eller en kopia. Att internera strängar är användbart för att vinna lite prestanda vid uppslagning i ordböcker – om nycklarna i en ordbok är internerade och uppslagningsnyckeln är internerad kan nyckeljämförelserna (efter hashning) göras med en pekarjämförelse i stället för en strängjämförelse. Normalt är de namn som används i Python-program automatiskt internerade, och de ordböcker som används för att hålla modul-, klass- eller instansattribut har internerade nycklar.
Internerade strängar är inte immortal; du måste behålla en referens till returvärdet för
intern()för att kunna dra nytta av det.
- sys._is_gil_enabled()¶
Returnerar
Trueom GIL är aktiverad ochFalseom den är inaktiverad.Tillagd i version 3.13.
Det är inte garanterat att den finns i alla implementationer av Python.
- sys.is_finalizing()¶
Returnerar
Trueom Pythons huvudtolk shutting down. ReturnerarFalseannars.Se även undantaget
PythonFinalizationError.Tillagd i version 3.5.
- sys._jit¶
Verktyg för att observera just-in-time-kompilering.
JIT-kompilering är en experimentell implementeringsdetalj i CPython. det är inte garanterat att
sys._jitexisterar eller beter sig på samma sätt i alla Python-implementationer, versioner eller byggkonfigurationer.Tillagd i version 3.14.
- _jit.is_available()¶
Returnerar
Trueom den aktuella Python-körbara filen stöder JIT-kompilering, ochFalseannars. Detta kan kontrolleras genom att bygga CPython med alternativet\--experimental-jitpå Windows, och alternativet--enable-experimental-jitpå alla andra plattformar.
- _jit.is_enabled()¶
Returnerar
Trueom JIT-kompilering är aktiverad för den aktuella Python-processen (implicerarsys._jit.is_available()), ochFalseannars. Om JIT-kompilering är tillgänglig kan detta kontrolleras genom att ställa in miljövariabelnPYTHON_JITtill0(inaktiverad) eller1(aktiverad) vid start av tolken.
- _jit.is_active()¶
Returnerar
Trueom den översta Python-rutan för närvarande kör JIT-kod (implicerarsys._jit.is_enabled()), ochFalseannars.Anteckning
Denna funktion är avsedd för testning och felsökning av själva JIT. Den bör undvikas för alla andra ändamål.
Anteckning
På grund av att JIT-kompilatorer spåras kan upprepade anrop till denna funktion ge överraskande resultat. Till exempel kommer förgrening på dess returvärde sannolikt att leda till oväntat beteende (om det gör att JIT-kod skrivs in eller avslutas):
>>> for warmup in range(BIG_NUMBER): ... # This line is "hot", and is eventually JIT-compiled: ... if sys._jit.is_active(): ... # This line is "cold", and is run in the interpreter: ... assert sys._jit.is_active() ... Traceback (most recent call last): File "<stdin>", line 5, in <module> assert sys._jit.is_active() ~~~~~~~~~~~~~~~~~~^^ AssertionError
- sys.last_exc¶
Denna variabel är inte alltid definierad; den sätts till undantagsinstansen när ett undantag inte hanteras och tolken skriver ut ett felmeddelande och en stackspårning. Den är avsedd att användas så att en interaktiv användare kan importera en felsökningsmodul och utföra felsökning efteråt utan att behöva utföra kommandot som orsakade felet igen. (Typisk användning är
import pdb; pdb.pm()för att komma in i post-mortem-felsökaren; sepdb-modulen för mer information)Tillagd i version 3.12.
- sys._is_immortal(op)¶
Returnerar
Trueom det givna objektet är immortal,Falseannars.Anteckning
Objekt som är odödliga (och därmed returnerar
Truenär de skickas till denna funktion) garanteras inte vara odödliga i framtida versioner, och vice versa för dödliga objekt.Tillagd i version 3.14.
Denna funktion bör endast användas för specialiserade ändamål. Det är inte garanterat att den finns i alla implementationer av Python.
- sys._is_interned(string)¶
Returnerar
Trueom den givna strängen är ”interned”,Falseannars.Tillagd i version 3.13.
Det är inte garanterat att den finns i alla implementationer av Python.
- sys.last_type¶
- sys.last_value¶
- sys.last_traceback¶
Dessa tre variabler är föråldrade; använd
sys.last_excistället. De innehåller den äldre representationen avsys.last_exc, som returneras frånexc_info()ovan.
- sys.maxsize¶
Ett heltal som anger det maximala värde som en variabel av typen
Py_ssize_tkan anta. Det är vanligtvis2**31 - 1på en 32-bitars plattform och2**63 - 1på en 64-bitars plattform.
- sys.maxunicode¶
Ett heltal som anger värdet för den största Unicode-kodpunkten, dvs.
1114111(0x10FFFFi hexadecimal).Ändrad i version 3.3: Före PEP 393 brukade
sys.maxunicodevara antingen0xFFFFeller0x10FFFF, beroende på det konfigurationsalternativ som angav om Unicode-tecken lagrades som UCS-2 eller UCS-4.
- sys.meta_path¶
En lista över meta path finder-objekt som har sina
find_spec()-metoder anropade för att se om ett av objekten kan hitta den modul som ska importeras. Som standard innehåller den poster som implementerar Pythons standardimport-semantik. Metodenfind_spec()anropas med åtminstone det absoluta namnet på den modul som importeras. Om modulen som ska importeras ingår i ett paket, skickas det överordnade paketets attribut__path__in som ett andra argument. Metoden returnerar en module spec, ellerNoneom modulen inte kan hittas.Se även
importlib.abc.MetaPathFinderDen abstrakta basklassen som definierar gränssnittet för sökobjekt på
meta_path.importlib.machinery.ModuleSpecDen konkreta klass som
find_spec()ska returnera instanser av.
Ändrad i version 3.4: Modulspecifikationer introducerades i Python 3.4, av PEP 451.
Ändrad i version 3.12: Tog bort fallbacken som letade efter en
find_module()-metod om enmeta_path-post inte hade enfind_spec()-metod.
- sys.modules¶
Detta är en ordbok som mappar modulnamn till moduler som redan har laddats. Detta kan manipuleras för att tvinga fram omladdning av moduler och andra trick. Att byta ut ordlistan kommer dock inte nödvändigtvis att fungera som förväntat och att ta bort viktiga objekt från ordlistan kan leda till att Python misslyckas. Om du vill iterera över denna globala ordbok ska du alltid använda
sys.modules.copy()ellertuple(sys.modules)för att undvika undantag eftersom dess storlek kan ändras under iterationen som en bieffekt av kod eller aktivitet i andra trådar.
- sys.orig_argv¶
Listan över de ursprungliga kommandoradsargumenten som skickades till Pythons körbara program.
Elementen i
sys.orig_argvär argumenten till Python-tolken, medan elementen isys.argvär argumenten till användarens program. Argument som används av själva tolken kommer att finnas isys.orig_argvoch saknas isys.argv.Tillagd i version 3.10.
- sys.path¶
En lista med strängar som anger sökvägen för moduler. Initialiseras från miljövariabeln
PYTHONPATH, plus en installationsberoende standard.Som standard, när programmet initieras vid programstart, läggs en potentiellt osäker sökväg till i
sys.path(före de poster som infogas som ett resultat avPYTHONPATH):python -m modulekommandorad: lägg till den aktuella arbetskatalogen före.python script.pykommandorad: lägg till skriptets katalog före. Om det är en symbolisk länk, lös symboliska länkar.kommandoraderna
python -c codeochpython(REPL): föregås av en tom sträng, vilket betyder den aktuella arbetskatalogen.
Om du inte vill lägga till denna potentiellt osäkra sökväg använder du kommandoradsalternativet
-Peller miljövariabelnPYTHONSAFEPATH.Det står ett program fritt att modifiera denna lista för sina egna syften. Endast strängar bör läggas till i
sys.path; alla andra datatyper ignoreras under importen.
- sys.path_hooks¶
En lista med anropbara filer som tar ett sökvägsargument för att försöka skapa en finder för sökvägen. Om en sökare kan skapas, skall den returneras av anropbarheten, annars uppstår
ImportError.Ursprungligen specificerat i PEP 302.
- sys.path_importer_cache¶
En ordbok som fungerar som en cache för finder-objekt. Nycklarna är sökvägar som har skickats till
sys.path_hooksoch värdena är de sökare som hittas. Om en sökväg är en giltig filsystemssökväg men ingen sökare hittas isys.path_hooksså lagrasNone.Ursprungligen specificerat i PEP 302.
- sys.platform¶
En sträng som innehåller en plattformsidentifierare. Kända värden är:
System
plattformvärdeAIX
'aix'Android
'android'Emscripten
'emscripten'FreeBSD
'freebsd'iOS
'ios'Linux
'linux'macOS
”Darwin
Fönster
'win32'Windows/Cygwin
'cygwin'WASI
'wasi'På Unix-system som inte listas i tabellen är värdet det gemena OS-namnet som returneras av
uname -s, med den första delen av versionen som returneras avuname -rtillagd, t.ex.'sunos5', vid den tidpunkt då Python byggdes. Om du inte vill testa för en specifik systemversion rekommenderas det därför att du använder följande idiom:if sys.platform.startswith('sunos'): # SunOS-specifik kod här...
Ändrad i version 3.3: På Linux innehåller
sys.platforminte längre huvudversionen. Den är alltid'linux, i stället för'linux2eller'linux3.Ändrad i version 3.8: På AIX innehåller
sys.platforminte längre huvudversionen. Den är alltid'aix', i stället för'aix5'eller'aix7'.Ändrad i version 3.13: På Android returnerar
sys.platformnu'android'i stället för'linux'.Ändrad i version 3.14: På FreeBSD innehåller
sys.platforminte huvudversionen längre. Den är alltid'freebsd', istället för'freebsd13'eller'freebsd14'.Se även
os.namehar en grövre granularitet.os.uname()ger systemberoende versionsinformation.Modulen
platformger detaljerade kontroller av systemets identitet.
- sys.platlibdir¶
Namnet på den plattformsspecifika bibliotekskatalogen. Den används för att bygga upp sökvägen till standardbiblioteket och sökvägarna till installerade tilläggsmoduler.
Det är lika med
"lib"på de flesta plattformar. På Fedora och SuSE är det lika med"lib64"på 64-bitars plattformar vilket ger följandesys.pathsökvägar (därX.Yär Pythonmajor.minorversion):/usr/lib64/pythonX.Y/: Standardbibliotek (somos.pyi modulenos)/usr/lib64/pythonX.Y/lib-dynload/: C-tilläggsmoduler till standardbiblioteket (somerrno-modulen, det exakta filnamnet är plattformsspecifikt)/usr/lib/pythonX.Y/site-packages/(använd alltidlib, intesys.platlibdir): Moduler från tredje part/usr/lib64/pythonX.Y/site-packages/: C-tilläggsmoduler för tredjepartspaket
Tillagd i version 3.9.
- sys.prefix¶
En sträng som anger det platsspecifika katalogprefix där de plattformsoberoende Python-filerna installeras; på Unix är standardvärdet
/usr/local. Detta kan ställas in vid byggtiden med--prefix-argumentet i configure-skriptet. Se Installationsvägar för härledda sökvägar.Anteckning
Om en virtuell miljö är i kraft, kommer detta
prefixatt peka på den virtuella miljön. Värdet för Python-installationen kommer fortfarande att vara tillgängligt viabase_prefix. Se Virtuella miljöer för mer information.Ändrad i version 3.14: Vid körning under en virtuell miljö, sätts nu
prefixochexec_prefixtill prefixet för den virtuella miljön av path initialization, istället försite. Detta innebär attprefixochexec_prefixalltid pekar på den virtuella miljön, även närsiteär inaktiverat (-S).
- sys.ps1¶
- sys.ps2¶
Strings specifying the primary and secondary prompt of the interpreter. These are only defined if the interpreter is in interactive mode. Their initial values in this case are
'>>> 'and'... '. If a non-string object is assigned to either variable, itsstr()is re-evaluated each time the interpreter prepares to read a new interactive command; this can be used to implement a dynamic prompt.
- sys.setdlopenflags(n)¶
Ställ in de flaggor som används av tolken för
dlopen()-anrop, t.ex. när tolken laddar tilläggsmoduler. Detta kommer bland annat att möjliggöra en lat upplösning av symboler vid import av en modul, om det kallas somsys.setdlopenflags(0). För att dela symboler mellan tilläggsmoduler, anropa somsys.setdlopenflags(os.RTLD_GLOBAL). Symboliska namn för flaggvärdena finns ios-modulen (RTLD_xxx-konstanter, t.ex.os.RTLD_LAZY).Tillgänglighet: Unix.
- sys.set_int_max_str_digits(maxdigits)¶
Ställer in begränsning av längd för omvandling av heltalssträngar som används av denna tolk. Se även
get_int_max_str_digits().Tillagd i version 3.11.
- sys.setprofile(profilefunc)¶
Ställ in systemets profilfunktion, som gör att du kan implementera en Python-källkodsprofilerare i Python. Se kapitel Python-profiler för mer information om Python-profileraren. Systemets profilfunktion anropas på samma sätt som systemets trace-funktion (se
settrace()), men den anropas med olika händelser, t.ex. anropas den inte för varje exekverad kodrad (endast vid anrop och retur, men returhändelsen rapporteras även när ett undantag har ställts in). Funktionen är trådspecifik, men det finns inget sätt för profileraren att veta om kontextbyten mellan trådar, så det är inte meningsfullt att använda den när det finns flera trådar. Dess returvärde används inte heller, så det kan helt enkelt returneraNone. Fel i profilfunktionen kommer att leda till att den själv nollställs.Anteckning
Samma spårningsmekanism används för
setprofile()som försettrace(). För att spåra anrop medsetprofile()inuti en spårningsfunktion (t.ex. i en brytpunkt i en debugger), secall_tracing().Profilfunktioner ska ha tre argument: frame, event och arg. frame är den aktuella stackramen. event är en sträng:
'call','return','c_call','c_return'eller'c_exception'. arg beror på händelsetypen.Händelserna har följande innebörd:
- ”Ring
En funktion anropas (eller något annat kodblock skrivs in). Profilfunktionen anropas; arg är
None.'return'En funktion (eller annat kodblock) är på väg att returneras. Profilfunktionen anropas; arg är det värde som kommer att returneras, eller
Noneom händelsen orsakas av att ett undantag tas upp.'c_call'En C-funktion är på väg att anropas. Detta kan vara en tilläggsfunktion eller en inbyggd funktion. arg är C-funktionens objekt.
'c_return'En C-funktion har returnerats. arg är C-funktionens objekt.
'c_exception'En C-funktion har löst ut ett undantag. arg är C-funktionens objekt.
Utlöser en auditing event
sys.setprofileutan argument.
- sys.setrecursionlimit(limit)¶
Ställ in det maximala djupet på Python-tolkens stack till limit. Denna gräns förhindrar oändlig rekursion från att orsaka ett överflöd av C-stacken och krascha Python.
Den högsta möjliga gränsen är plattformsberoende. En användare kan behöva sätta gränsen högre om han eller hon har ett program som kräver djup rekursion och en plattform som stöder en högre gräns. Detta bör göras med försiktighet, eftersom en för hög gräns kan leda till en krasch.
Om den nya gränsen är för låg vid det aktuella rekursionsdjupet, utlöses ett
RecursionErrorundantag.Ändrad i version 3.5.1: Ett
RecursionError-undantag görs nu om den nya gränsen är för låg med det aktuella rekursionsdjupet.
- sys.setswitchinterval(interval)¶
Ställ in tolkens trådbytesintervall (i sekunder). Detta värde med flyttal bestämmer den ideala varaktigheten för de ”timeslices” som allokeras till Python-trådar som körs samtidigt. Observera att det faktiska värdet kan vara högre, särskilt om interna funktioner eller metoder med lång löptid används. Vilken tråd som blir schemalagd i slutet av intervallet är också operativsystemets beslut. Tolken har inte någon egen schemaläggare.
Tillagd i version 3.2.
- sys.settrace(tracefunc)¶
Ställ in systemets spårningsfunktion, som gör att du kan implementera en Python-felsökare för källkod i Python. Funktionen är trådspecifik; för att en felsökare ska stödja flera trådar måste den registrera en spårningsfunktion med
settrace()för varje tråd som felsöks eller användathreading.settrace().Spårningsfunktioner bör ha tre argument: frame, event och arg. frame är den aktuella stackramen. event är en sträng:
'call','line','return','exception'eller'opcode'. arg beror på händelsetypen.Trace-funktionen anropas (med event satt till
'call') när ett nytt lokalt scope skrivs in; den ska returnera en referens till en lokal trace-funktion som ska användas för det nya scopet, ellerNoneom scopet inte ska spåras.Den lokala spårningsfunktionen bör returnera en referens till sig själv eller till en annan funktion som sedan används som lokal spårningsfunktion för området.
Om det uppstår något fel i trace-funktionen kommer den att avaktiveras, precis som när
settrace(None)anropas.Anteckning
Spårning inaktiveras när spårningsfunktionen anropas (t.ex. en funktion som anges av
settrace()). För rekursiv spårning secall_tracing().Händelserna har följande innebörd:
- ”Ring
En funktion anropas (eller något annat kodblock skrivs in). Den globala spårningsfunktionen anropas; arg är
None; returvärdet anger den lokala spårningsfunktionen.'line'Tolken är på väg att exekvera en ny kodrad eller åter exekvera villkoret i en slinga. Den lokala trace-funktionen anropas; arg är
None; returvärdet specificerar den nya lokala trace-funktionen. SeObjects/lnotab_notes.txtför en detaljerad förklaring av hur detta fungerar. Händelser per rad kan inaktiveras för en ram genom att sättaf_trace_linestillFalsepå den ramen.'return'En funktion (eller annat kodblock) är på väg att returneras. Den lokala trace-funktionen anropas; arg är det värde som ska returneras, eller
Noneom händelsen orsakas av att ett undantag tas upp. Trace-funktionens returvärde ignoreras.'exception'Ett undantag har inträffat. Den lokala spårningsfunktionen anropas; arg är en tupel
(exception, value, traceback); returvärdet anger den nya lokala spårningsfunktionen.'opcode'Tolken är på väg att exekvera en ny opkod (se
disför detaljer om opkoder). Den lokala spårningsfunktionen anropas; arg ärNone; returvärdet specificerar den nya lokala spårningsfunktionen. Per-opcode-händelser sänds inte ut som standard: de måste uttryckligen begäras genom att sättaf_trace_opcodestillTruepå frame.
Observera att när ett undantag sprids nedåt i kedjan av anropare, genereras en
'exception'på varje nivå.För mer finkornig användning är det möjligt att ställa in en spårningsfunktion genom att tilldela
frame.f_trace = tracefuncexplicit, snarare än att förlita sig på att den ställs in indirekt via returvärdet från en redan installerad spårningsfunktion. Detta krävs också för att aktivera spårningsfunktionen på den aktuella ramen, vilketsettrace()inte gör. Observera att för att detta ska fungera måste en global spårningsfunktion ha installerats medsettrace()för att aktivera spårningsmaskineriet under körning, men det behöver inte vara samma spårningsfunktion (det kan t.ex. vara en spårningsfunktion med låg overhead som helt enkelt returnerarNoneför att inaktivera sig själv omedelbart vid varje bildruta).För mer information om kod- och ramobjekt, se Standardtypens hierarki.
Utlöser en auditing event
sys.settraceutan argument.Funktionen
settrace()är endast avsedd för implementering av debuggar, profilerare, täckningsverktyg och liknande. Dess beteende är en del av implementeringsplattformen, snarare än en del av språkdefinitionen, och är därför kanske inte tillgänglig i alla Python-implementeringar.Ändrad i version 3.7: händelsetypen
'opcode'tillagd; attributenf_trace_linesochf_trace_opcodestillagda för ramar
- sys.set_asyncgen_hooks([firstiter] [, finalizer])¶
Accepterar två valfria nyckelordsargument som är anropbara som accepterar en asynkron generator iterator som argument. Anropet firstiter kommer att anropas när en asynkron generator itereras för första gången. Anropsobjektet finalizer anropas när en asynkron generator är på väg att sopuppsamlas.
Utlöser en auditing event
sys.set_asyncgen_hooks_firstiterutan argument.Utlöser en auditing event
sys.set_asyncgen_hooks_finalizerutan argument.Två revisionshändelser utlöses eftersom det underliggande API:et består av två anrop som var och en måste utlösa sin egen händelse.
Tillagd i version 3.6: Se PEP 525 för mer information, och för ett referensexempel på en finalizer-metod se implementeringen av
asyncio.Loop.shutdown_asyncgensi Lib/asyncio/base_events.py`Anteckning
Denna funktion har lagts till på provisorisk basis (se PEP 411 för detaljer)
- sys.set_coroutine_origin_tracking_depth(depth)¶
Gör det möjligt att aktivera eller inaktivera spårning av coroutine-ursprung. När det är aktiverat kommer attributet
cr_originpå coroutine-objekt att innehålla en tupel av (filnamn, radnummer, funktionsnamn) tuplar som beskriver spårningen där coroutine-objektet skapades, med det senaste anropet först. Närcr_originär inaktiverat kommer det att varaNone.För att aktivera, skicka ett djup-värde större än noll; detta anger antalet bildrutor vars information kommer att fångas upp. För att inaktivera, sätt depth till noll.
Denna inställning är trådspecifik.
Tillagd i version 3.7.
Anteckning
Denna funktion har lagts till tillfälligt (se PEP 411 för detaljer.) Använd den endast i felsökningssyfte.
- sys.activate_stack_trampoline(backend, /)¶
Aktivera trampolinen för stackprofilering backend. Den enda backend som stöds är
"perf".Stapeltrampoliner kan inte aktiveras om JIT är aktiv.
Tillgänglighet: Linux.
Tillagd i version 3.12.
- sys.deactivate_stack_trampoline()¶
Avaktivera den aktuella backend-trampolinen för stackprofilering.
Om ingen stackprofilering är aktiverad har denna funktion ingen effekt.
Tillgänglighet: Linux.
Tillagd i version 3.12.
- sys.is_stack_trampoline_active()¶
Returnerar
Trueom en trampolin för stackprofilering är aktiv.Tillgänglighet: Linux.
Tillagd i version 3.12.
- sys.remote_exec(pid, script)¶
Exekverar script, en fil som innehåller Python-kod i fjärrprocessen med den angivna pid.
Denna funktion returnerar omedelbart och koden kommer att exekveras av målprocessens huvudtråd vid nästa tillfälle, på samma sätt som signaler hanteras. Det finns inget gränssnitt för att avgöra när koden har exekverats. Anroparen ansvarar för att filen fortfarande finns kvar när fjärrprocessen försöker läsa den och att den inte har skrivits över.
Fjärrprocessen måste köra en CPython-tolk med samma större och mindre version som den lokala processen. Om antingen den lokala eller fjärrtolken är en pre-release (alpha, beta eller releasekandidat) måste den lokala och fjärrtolken ha exakt samma version.
När koden körs i fjärrprocessen utlöses en auditing event
sys.remote_execmed pid och sökvägen till skriptfilen. Den här händelsen utlöses i den process som anropadesys.remote_exec().När skriptet körs i fjärrprocessen skapas en auditing event
cpython.remote_debugger_scriptmed sökvägen i fjärrprocessen. Denna händelse utlöses i fjärrprocessen, inte i den som anropadesys.remote_exec().Tillgänglighet: Unix, Windows.
Tillagd i version 3.14.
- sys._enablelegacywindowsfsencoding()¶
Ändrar filesystem encoding and error handler till ’mbcs’ respektive ’replace’, för överensstämmelse med versioner av Python före 3.6.
Detta motsvarar att definiera miljövariabeln
PYTHONLEGACYWINDOWSFSENCODINGinnan Python startas.Se även
sys.getfilesystemencoding()ochsys.getfilesystemencodeerrors().Tillgänglighet: Windows.
Anteckning
Att ändra filsystemets kodning efter Python-start är riskabelt eftersom den gamla fsenkodningen eller sökvägar kodade med den gamla fsenkodningen kan vara cachade någonstans. Använd
PYTHONLEGACYWINDOWSFSENCODINGistället.Tillagd i version 3.6: Se PEP 529 för mer information.
Deprecated since version 3.13, will be removed in version 3.16: Använd
PYTHONLEGACYWINDOWSFSENCODINGistället.
- sys.stdin¶
- sys.stdout¶
- sys.stderr¶
Filobjekt används av tolken för standardinmatning, -utmatning och -fel:
stdinanvänds för all interaktiv inmatning (inklusive anrop tillinput());stdoutanvänds för utdata frånprint()och expression och för uppmaningar fråninput();Tolkens egna uppmaningar och dess felmeddelanden går till
stderr.
Dessa strömmar är vanliga textfiler som de som returneras av funktionen
open(). Deras parametrar väljs enligt följande:Kodning och felhantering initialiseras från
PyConfig.stdio_encodingochPyConfig.stdio_errors.I Windows används UTF-8 för konsolenheten. Enheter som inte innehåller tecken, t.ex. diskfiler och pipes, använder systemets lokala kodning (d.v.s. ANSI-kodningen). Enheter som inte innehåller konsoltecken, t.ex. NUL (dvs. där
isatty()returnerarTrue), använder värdet på konsolens kodsidor för in- och utmatning vid start, för stdin respektive stdout/stderr. Detta är standardvärdet för systemets locale encoding om processen inte initialt är kopplad till en konsol.Konsolens speciella beteende kan åsidosättas genom att ställa in miljövariabeln PYTHONLEGACYWINDOWSSTDIO innan Python startas. I så fall används konsolens kodsidor på samma sätt som för alla andra teckenenheter.
Under alla plattformar kan du åsidosätta teckenkodningen genom att ställa in miljövariabeln
PYTHONIOENCODINGinnan du startar Python eller genom att använda det nya kommandoradsalternativet-Xutf8och miljövariabelnPYTHONUTF8. För Windows-konsolen gäller detta dock endast närPYTHONLEGACYWINDOWSSTDIOockså är inställd.När den är interaktiv är strömmen
stdoutradbuffrad. Annars är den blockbuffrad som vanliga textfiler. Strömmenstderrär radbuffrad i båda fallen. Du kan göra båda strömmarna obuffrade genom att ange kommandoradsalternativet-ueller ställa in miljövariabelnPYTHONUNBUFFERED.
Ändrad i version 3.9: Icke-interaktiva
stderrär nu linje-buffrad istället för fullt buffrad.Anteckning
För att skriva eller läsa binära data från/till standardströmmarna, använd det underliggande binära
buffer-objektet. Om du t.ex. vill skriva byte tillstdoutanvänder dusys.stdout.buffer.write(b'abc').Men om du skriver ett bibliotek (och inte kontrollerar i vilket sammanhang dess kod kommer att exekveras), var medveten om att standardströmmarna kan ersättas med filliknande objekt som
io.StringIOsom inte stöder attributetbuffer.
- sys.__stdin__¶
- sys.__stdout__¶
- sys.__stderr__¶
Dessa objekt innehåller de ursprungliga värdena för
stdin,stderrochstdouti början av programmet. De används under slutförandet och kan vara användbara för att skriva ut till den faktiska standardströmmen oavsett om objektetsys.std*har omdirigerats.Den kan också användas för att återställa de faktiska filerna till kända fungerande filobjekt om de har skrivits över med ett trasigt objekt. Det bästa sättet att göra detta är dock att uttryckligen spara den tidigare strömmen innan den ersätts, och återställa det sparade objektet.
Anteckning
Under vissa förhållanden kan
stdin,stdoutochstderrsamt originalvärdena__stdin__,__stdout__och__stderr__varaNone. Det är vanligtvis fallet för Windows GUI-appar som inte är anslutna till en konsol och Python-appar som startas med pythonw.
- sys.stdlib_module_names¶
En uppsättning strängar som innehåller namnen på standardbiblioteksmoduler.
Den är densamma på alla plattformar. Moduler som inte är tillgängliga på vissa plattformar och moduler som inaktiveras vid Python-byggandet listas också. Alla modultyper listas: ren Python, inbyggda, frysta och tilläggsmoduler. Testmoduler är exkluderade.
För paket listas endast huvudpaketet: underpaket och undermoduler listas inte. Till exempel listas paketet
email, men underpaketetemail.mimeoch undermodulenemail.messagelistas inte.Se även listan
sys.builtin_module_names.Tillagd i version 3.10.
- sys.thread_info¶
En named tuple som innehåller information om trådimplementeringen.
- thread_info.name¶
Namnet på trådimplementeringen:
"nt": Windows-trådar"pthread": POSIX-trådar"pthread-stubs": stubbar POSIX-trådar (på WebAssembly-plattformar utan stöd för trådning)"solaris": Solaris-trådar
- thread_info.lock¶
Namnet på implementeringen av låset:
"semaphore": ett lås använder en semafor"mutex+cond": ett lås använder en mutex och en villkorvariabelNoneom denna information är okänd
- thread_info.version¶
Namn och version av trådbiblioteket. Det är en sträng, eller
Noneom denna information är okänd.
Tillagd i version 3.3.
- sys.tracebacklimit¶
När denna variabel är inställd på ett heltalsvärde bestämmer den det maximala antalet nivåer av spårningsinformation som skrivs ut när ett ohanterat undantag inträffar. Standardvärdet är
1000. Om variabeln är inställd på ”0” eller mindre undertrycks all spårningsinformation och endast undantagstyp och värde skrivs ut.
- sys.unraisablehook(unraisable, /)¶
Hantera ett undantag som inte kan bedömas.
Anropas när ett undantag har inträffat men det inte finns något sätt för Python att hantera det. Till exempel när en destruktor gör ett undantag eller under garbage collection (
gc.collect()).Argumentet unraisable har följande attribut:
exc_type: Typ av undantag.exc_value: Undantagsvärde, kan varaNone.exc_traceback: Exception traceback, kan varaNone.err_msg: Felmeddelande, kan varaNone.objekt: Objekt som orsakar undantaget, kan varaNone.
Standard-hook formaterar
err_msgochobjectsom:f'{err_msg}: {object!r}'; använd felmeddelandet ”Exception ignored in” omerr_msgärNone.sys.unraisablehook()kan åsidosättas för att styra hur undantag som inte kan bedömas hanteras.Se även
excepthook()som hanterar undantag som inte fångats upp.Varning
Om du lagrar
exc_valuemed en anpassad hook kan det skapa en referenscykel. Den bör rensas explicit för att bryta referenscykeln när undantaget inte längre behövs.Om du lagrar
objectmed en anpassad hook kan den återuppstå om den är inställd på ett objekt som håller på att slutföras. Undvik att lagraobjectefter att den anpassade hooken har slutförts för att undvika att objekt återuppstår.Utlöser en granskningshändelse
sys.unraisablehookmed argumenten hook, unraisable när ett undantag som inte kan hanteras inträffar. Objektet unraisable är detsamma som det som kommer att skickas till hooken. Om ingen hook har ställts in, kan hook varaNone.Tillagd i version 3.8.
- sys.version¶
En sträng som innehåller versionsnumret för Python-tolken plus ytterligare information om byggnummer och kompilator som använts. Denna sträng visas när den interaktiva tolken startas. Extrahera inte versionsinformation från den, använd hellre
version_infooch de funktioner som tillhandahålls av modulenplatform.
- sys.api_version¶
C API-versionen, motsvarande C-makrot
PYTHON_API_VERSION. Definierad för bakåtkompatibilitet.För närvarande uppdateras inte denna konstant i nya Python-versioner och är inte användbar för versionshantering. Detta kan komma att ändras i framtiden.
- sys.version_info¶
En tupel som innehåller de fem komponenterna i versionsnumret: major, minor, micro, releaselevel och serial. Alla värden utom releaselevel är heltal; versionsnivån är
'alpha','beta','candidate'eller'final'. Värdet förversion_infosom motsvarar Python version 2.0 är(2, 0, 0, 'final', 0). Komponenterna kan också nås via namn, såsys.version_info[0]är likvärdigt medsys.version_info.majoroch så vidare.Ändrad i version 3.1: Namngivna komponentattribut har lagts till.
- sys.warnoptions¶
Detta är en implementeringsdetalj av ramverket för varningar; ändra inte detta värde. Se modulen
warningsför mer information om ramverket för varningar.
- sys.winver¶
Versionsnumret som används för att skapa registernycklar på Windows-plattformar. Detta lagras som strängresurs 1000 i Python DLL. Värdet är normalt major- och minor-versionerna av den Python-tolk som körs. Det tillhandahålls i modulen
sysför informationsändamål; att ändra detta värde har ingen effekt på de registernycklar som används av Python.Tillgänglighet: Windows.
- sys.monitoring
Namnrymd som innehåller funktioner och konstanter för att registrera callbacks och styra övervakningshändelser. Se
sys.monitoringför mer information.
- sys._xoptions¶
En ordbok med de olika implementationsspecifika flaggor som skickas via kommandoradsalternativet
-X. Alternativnamn mappas antingen till sina värden, om de anges explicit, eller tillTrue. Ett exempel:$ ./python -Xa=b -Xc Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys._xoptions {'a': 'b', 'c': True}
Detta är ett CPython-specifikt sätt att komma åt alternativ som skickas via
-X. Andra implementationer kan exportera dem på andra sätt, eller inte alls.Tillagd i version 3.2.
Citeringar
ISO/IEC 9899:1999. ”Programmeringsspråk – C.” Ett offentligt utkast av denna standard finns tillgängligt på https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.