1. Kommandorad och miljö¶
CPython-tolken söker efter olika inställningar på kommandoraden och i miljön.
Andra implementeringars kommandoradsscheman kan skilja sig åt. Se Alternativa implementeringar för ytterligare resurser.
1.1. Kommandorad¶
När du anropar Python kan du ange något av följande alternativ:
python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] [args]
Det vanligaste användningsfallet är naturligtvis en enkel anropning av ett skript:
python myscript.py
1.1.1. Alternativ för gränssnitt¶
Interpretergränssnittet liknar det som finns i UNIX-skalet, men innehåller några ytterligare metoder för anrop:
När programmet anropas med standardinmatning ansluten till en tty-enhet frågar det efter kommandon och kör dem tills ett EOF-tecken (ett tecken för slutet av filen, du kan skapa det med Ctrl-D på UNIX eller Ctrl-Z, Enter på Windows) läses. För mer information om interaktivt läge, se Interaktivt läge.
När programmet anropas med ett filnamnsargument eller med en fil som standardinmatning läser och körs ett skript från den filen.
När den anropas med ett argument i form av ett katalognamn läser och körs ett skript med lämpligt namn från den katalogen.
När den anropas med
\-c command, exekverar den Python-satsen/-satserna som anges som command. Här kan kommando innehålla flera satser åtskilda av nya rader. Ledande blanksteg är betydelsefulla i Python-satser!När den anropas med
\-m modulnamnplaceras den angivna modulen på Pythons modulväg och körs som ett skript.
I icke-interaktivt läge analyseras hela inmatningen innan den körs.
Ett interface-alternativ avslutar listan över alternativ som tolken använder, alla på varandra följande argument hamnar i sys.argv – observera att det första elementet, index noll (sys.argv[0]), är en sträng som återspeglar programmets källa.
- -c <command>¶
Exekvera Python-koden i kommando. command kan vara en eller flera satser åtskilda av nya rader, med betydande inledande blanksteg som i normal modulkod.
Om detta alternativ anges kommer det första elementet i
sys.argvatt vara"-c"och den aktuella katalogen kommer att läggas till i början avsys.path(vilket gör att moduler i den katalogen kan importeras som toppnivåmoduler).Utlöser en auditing event
cpython.run_commandmed argumentetcommand.Ändrad i version 3.14: command är automatiskt dedented före verkställighet.
- -m <module-name>¶
Sök i
sys.pathefter den namngivna modulen och exekvera dess innehåll som__main__-modulen.Eftersom argumentet är ett modulnamn får du inte ange något filtillägg (
.py). Modulnamnet bör vara ett giltigt absolut Python-modulnamn, men implementationen kanske inte alltid upprätthåller detta (t.ex. kan det tillåta dig att använda ett namn som innehåller ett bindestreck).Paketnamn (inklusive namnrymdspaket) är också tillåtna. När ett paketnamn anges i stället för en vanlig modul kommer tolken att exekvera
<pkg>.__main__som huvudmodul. Detta beteende liknar avsiktligt hanteringen av kataloger och zip-filer som skickas till tolken som skriptargument.Anteckning
Det här alternativet kan inte användas med inbyggda moduler och tilläggsmoduler skrivna i C, eftersom de inte har Python-modulfiler. Det kan dock fortfarande användas för förkompilerade moduler, även om den ursprungliga källfilen inte är tillgänglig.
Om detta alternativ anges, kommer det första elementet i
sys.argvatt vara den fullständiga sökvägen till modulfilen (medan modulfilen lokaliseras, kommer det första elementet att sättas till"-m"). Precis som med alternativet-cläggs den aktuella katalogen till i början avsys.path.-Ioption kan användas för att köra skriptet i isolerat läge därsys.pathvarken innehåller den aktuella katalogen eller användarens katalog för site-paket. AllaPYTHON*miljövariabler ignoreras också.Många standardbiblioteksmoduler innehåller kod som anropas som ett skript när de exekveras. Ett exempel är modulen
timeit:python -m timeit -s "setup här" "benchmarkad kod här" python -m timeit -h # för detaljer
Utlöser en auditing event
cpython.run_modulemed argumentetmodule-name.Se även
runpy.run_module()Motsvarande funktionalitet direkt tillgänglig för Python-kod
PEP 338 – Exekvera moduler som skript
Ändrad i version 3.1: Ange paketnamnet för att köra en
__main__-undermodul.Ändrad i version 3.4: namnrymdspaket stöds också
- -
Läser kommandon från standardinmatningen (
sys.stdin). Om standardinmatningen är en terminal är-iunderförstådd.Om detta alternativ anges kommer det första elementet i
sys.argvatt vara"-"och den aktuella katalogen kommer att läggas till i början avsys.path.Utlöser en auditing event
cpython.run_stdinutan argument.
- <script>
Kör Python-koden i script, som måste vara en filsystemssökväg (absolut eller relativ) som hänvisar till antingen en Python-fil, en katalog som innehåller filen
__main__.pyeller en zip-fil som innehåller filen__main__.py.Om detta alternativ anges kommer det första elementet i
sys.argvatt vara skriptnamnet som anges på kommandoraden.Om skriptnamnet hänvisar direkt till en Python-fil läggs katalogen som innehåller filen till i början av
sys.pathoch filen exekveras som__main__-modulen.Om skriptnamnet hänvisar till en katalog eller zip-fil läggs skriptnamnet till i början av
sys.pathoch filen__main__.pypå den platsen exekveras som modulen__main__.-Ioption kan användas för att köra skriptet i isolerat läge därsys.pathvarken innehåller skriptets katalog eller användarens katalog för site-paket. AllaPYTHON*miljövariabler ignoreras också.Utlöser en auditing event
cpython.run_filemed argumentetfilename.Se även
runpy.run_path()Motsvarande funktionalitet direkt tillgänglig för Python-kod
Om inget gränssnittsalternativ anges är -i underförstått, sys.argv[0] är en tom sträng ("") och den aktuella katalogen läggs till i början av sys.path. Tab-komplettering och historikredigering aktiveras också automatiskt, om det finns tillgängligt på din plattform (se Konfiguration av läslinje).
Se även
Ändrad i version 3.4: Automatisk aktivering av tabbkomplettering och historikredigering.
1.1.2. Allmänna alternativ¶
- -?¶
- -h¶
- --help¶
Skriv ut en kort beskrivning av alla kommandoradsalternativ och motsvarande miljövariabler och avsluta.
- --help-env¶
Skriv ut en kort beskrivning av Python-specifika miljövariabler och avsluta.
Tillagd i version 3.11.
- --help-xoptions¶
Skriv ut en beskrivning av implementationsspecifika
-X-alternativ och avsluta.Tillagd i version 3.11.
- --help-all¶
Skriv ut fullständig användningsinformation och avsluta.
Tillagd i version 3.11.
1.1.3. Diverse alternativ¶
- -b¶
Utfärda en varning när du konverterar
bytesellerbytearraytillstrutan att ange kodning eller jämförbytesellerbytearraymedstrellerbytesmedint. Utfärdar ett fel när alternativet ges två gånger (-bb).
- -B¶
Om den anges kommer Python inte att försöka skriva
.pyc-filer vid import av källmoduler. Se ävenPYTHONDONTWRITEBYTECODE.
- --check-hash-based-pycs default|always|never¶
Kontrollera valideringsbeteendet för hash-baserade
.pyc-filer. Se Inaktivering av cachad bytekod. När inställt pådefaultvalideras kontrollerade och okontrollerade hash-baserade bytecode-cachefiler enligt deras standardsemantik. När inställningen äralwaysvalideras alla hash-baserade.pyc-filer, oavsett om de är markerade eller omarkerade, mot motsvarande källfil. När inställningen ärnevervalideras inte hash-baserade.pyc-filer mot motsvarande källfiler.Semantiken för tidsstämpelbaserade
.pyc-filer påverkas inte av detta alternativ.
- -d¶
Aktivera felsökning av parsern (endast för experter). Se även miljövariabeln
PYTHONDEBUG.Detta alternativ kräver en debug-version av Python, annars ignoreras det.
- -E¶
Ignorera alla
PYTHON*miljövariabler, t.ex.PYTHONPATHochPYTHONHOME, som kan vara inställda.
- -i¶
Gå till interaktivt läge efter körning.
Om du använder alternativet
-iaktiveras interaktivt läge under någon av följande omständigheter:Interaktivt läge kommer att starta även om
sys.stdininte verkar vara en terminal. FilenPYTHONSTARTUPläses inte.Detta kan vara användbart för att inspektera globala variabler eller en stackspårning när ett skript ger upphov till ett undantag. Se även
PYTHONINSPECT.
- -I¶
Kör Python i isolerat läge. Detta innebär också alternativen
-E,-Poch-s.I isolerat läge innehåller
sys.pathvarken skriptets katalog eller användarens katalog för site-paket. AllaPYTHON*miljövariabler ignoreras också. Ytterligare restriktioner kan införas för att förhindra att användaren injicerar skadlig kod.Tillagd i version 3.4.
- -O¶
Ta bort assert-satser och all kod som är villkorad av värdet på
__debug__. Förbättra filnamnet för kompilerade (bytecode) filer genom att lägga till.opt-1före.pyc(se PEP 488). Se ävenPYTHONOPTIMIZE.Ändrad i version 3.5: Ändra
.pycfilnamn enligt PEP 488.
- -OO¶
Gör
-Ooch förkasta även docstrings. Förbättra filnamnet för kompilerade (bytecode) filer genom att lägga till.opt-2före ändelsen.pyc(se PEP 488).Ändrad i version 3.5: Ändra
.pycfilnamn enligt PEP 488.
- -P¶
Lägg inte till en potentiellt osäker sökväg till
sys.path:python -m modulkommandoraden: Lägg inte till den aktuella arbetskatalogen före.python script.pykommandoraden: Ange inte skriptets katalog i förväg. Om det är en symbolisk länk, lös symboliska länkar.kommandoraderna
python -c codeochpython(REPL): Lägg inte till en tom sträng, vilket betyder den aktuella arbetskatalogen.
Se även miljövariabeln
PYTHONSAFEPATHoch alternativen-Eoch-I(isolerade).Tillagd i version 3.11.
- -q¶
Visa inte copyright- och versionsmeddelanden ens i interaktivt läge.
Tillagd i version 3.2.
- -R¶
Slå på randomisering av hash. Detta alternativ har endast effekt om miljövariabeln
PYTHONHASHSEEDär inställd på0, eftersom hashslumpning är aktiverat som standard.I tidigare versioner av Python aktiverar detta alternativ hash-randomisering, så att
__hash__()-värdena för str- och bytes-objekt ”saltas” med ett oförutsägbart slumpmässigt värde. Även om de förblir konstanta inom en enskild Python-process, är de inte förutsägbara mellan upprepade anrop av Python.Hash-randomisering är avsedd att ge skydd mot en överbelastningsattack som orsakas av noggrant utvalda indata som utnyttjar den sämsta prestandan för en dict-konstruktion, O(n2) komplexitet. Se http://ocert.org/advisories/ocert-2011-003.html för mer information.
PYTHONHASHSEEDgör att du kan ange ett fast värde för hashfröets hemlighet.Tillagd i version 3.2.3.
Ändrad i version 3.7: Alternativet ignoreras inte längre.
- -s¶
Lägg inte till katalogen
user site-packagesisys.path.Se även
PYTHONNOUSERSITE.Se även
PEP 370 – Katalog för webbplats-paket för varje användare
- -S¶
Inaktivera importen av modulen
siteoch de platsberoende manipuleringarna avsys.pathsom den medför. Inaktivera även dessa manipuleringar omsiteuttryckligen importeras senare (anropasite.main()om du vill att de ska utlösas).
- -u¶
Tvinga stdout- och stderr-strömmarna att vara obuffrade. Detta alternativ har ingen effekt på stdin-strömmen.
Se även
PYTHONUNBUFFERED.Ändrad i version 3.7: Textlagret i strömmarna stdout och stderr är nu obuffrat.
- -v¶
Varje gång en modul initieras skrivs ett meddelande ut som visar varifrån den hämtas (filnamn eller inbyggd modul). Om det anges två gånger (
-vv) skrivs ett meddelande ut för varje fil som kontrolleras vid sökning efter en modul. Ger också information om modulrensning vid avslutning.Ändrad i version 3.10: Modulen
siterapporterar de platsspecifika sökvägarna och.pth-filerna som bearbetas.Se även
PYTHONVERBOSE.
- -W arg¶
Kontroll av varningar. Pythons varningsmekanism skriver som standard ut varningsmeddelanden till
sys.stderr.De enklaste inställningarna tillämpar en viss åtgärd villkorslöst på alla varningar som utfärdas av en process (även de som annars ignoreras som standard):
-Wdefault # Varna en gång per samtalsplats -Werror # Konvertera till undantag -Walways # Varna varje gång -Wall # Samma som -Walways -Wmodule # Varnar en gång per anropande modul -Wonce # Varna en gång per Python-process -Wignore # Varnar aldrig
Åtgärdsnamnen kan förkortas hur mycket som helst och tolken kommer att omvandla dem till rätt åtgärdsnamn. Till exempel är
\-Wisamma sak som\-Wignore.Den fullständiga formen av argument är:
åtgärd:meddelande:kategori:modul:lineno
Tomma fält matchar alla värden; efterföljande tomma fält kan utelämnas. Till exempel
\-W ignore::DeprecationWarningignorerar alla DeprecationWarning-varningar.Fältet action är som förklarat ovan, men gäller endast för varningar som matchar de övriga fälten.
Fältet message måste matcha hela varningsmeddelandet; denna matchning är skiftlägesokänslig.
Fältet category matchar varningskategorin (t.ex.
DeprecationWarning). Detta måste vara ett klassnamn; matchningen testar om den faktiska varningskategorin i meddelandet är en underklass till den angivna varningskategorin.Fältet module matchar det (fullständigt kvalificerade) modulnamnet; denna matchning är skiftlägeskänslig.
Fältet lineno matchar radnumret, där noll matchar alla radnummer och därmed är likvärdigt med ett utelämnat radnummer.
Flera
-W-alternativ kan anges; när en varning matchar mer än ett alternativ utförs åtgärden för det sista matchande alternativet. Ogiltiga-W-alternativ ignoreras (dock skrivs ett varningsmeddelande ut om ogiltiga alternativ när den första varningen utfärdas).Varningar kan också kontrolleras med hjälp av miljövariabeln
PYTHONWARNINGSoch inifrån ett Python-program med hjälp av modulenwarnings. Till exempel kan funktionenwarnings.filterwarnings()användas för att använda ett reguljärt uttryck på varningsmeddelandet.Se Filtret för varningar och Beskrivning av varningsfilter för mer information.
- -x¶
Hoppa över första raden i källan, vilket möjliggör användning av icke-Unix-former av
#!cmd. Detta är endast avsett för ett DOS-specifikt hack.
- -X¶
Reserverad för olika implementationsspecifika alternativ. CPython definierar för närvarande följande möjliga värden:
\-X faulthandlerför att aktiverafaulthandler. Se ävenPYTHONFAULTHANDLER.Tillagd i version 3.3.
\-X showrefcountför att visa det totala referensantalet och antalet använda minnesblock när programmet avslutas eller efter varje sats i den interaktiva tolken. Detta fungerar endast på debug builds.Tillagd i version 3.4.
\-X tracemallocför att börja spåra Python-minnesallokeringar med hjälp av modulentracemalloc. Som standard lagras endast den senaste ramen i en traceback för en spårning. Använd\-X tracemalloc=NFRAMEför att starta spårning med en spårningsgräns på NFRAME ramar. Setracemalloc.start()ochPYTHONTRACEMALLOCför mer information.Tillagd i version 3.4.
\-X int_max_str_digitskonfigurerar begränsning av längden för konvertering av heltalssträngar. Se ävenPYTHONINTMAXSTRDIGITS.Tillagd i version 3.11.
\-X importtimeför att visa hur lång tid varje import tar. Den visar modulnamn, kumulativ tid (inklusive nästlade importer) och egen tid (exklusive nästlade importer). Observera att dess utdata kan brytas i flertrådade applikationer. Typisk användning ärpython -X importtime -c 'import asyncio'.\-X importtime=2aktiverar ytterligare utdata som indikerar när en importerad modul redan har laddats. I sådana fall kommer strängencachedatt skrivas ut i båda tidskolumnerna.Se även
PYTHONPROFILEIMPORTTIME.Tillagd i version 3.7.
Ändrad i version 3.14: Lade till
\-X importtime=2för att även spåra import av laddade moduler, och reserverade andra värden än1och2för framtida användning.\-X dev: aktivera Python Development Mode, introducerar ytterligare körtidskontroller som är för dyra för att aktiveras som standard. Se ävenPYTHONDEVMODE.Tillagd i version 3.7.
\-X utf8aktiverar Python UTF-8 Mode.\-X utf8=0inaktiverar explicit Python UTF-8 Mode (även om det annars skulle aktiveras automatiskt). Se ävenPYTHONUTF8.Tillagd i version 3.7.
\-X pycache_prefix=PATHgör det möjligt att skriva.pyc-filer till ett parallellt träd med rot i den angivna katalogen istället för till kodträdet. Se ävenPYTHONPYCACHEPREFIX.Tillagd i version 3.8.
\-X warn_default_encodingutfärdar enEncodingWarningnär den lokalspecifika standardkodningen används för att öppna filer. Se ävenPYTHONWARNDEFAULTENCODING.Tillagd i version 3.10.
\-X no_debug_rangesinaktiverar inkluderingen av tabeller som mappar extra platsinformation (slutrad, startkolumnoffset och slutkolumnoffset) till varje instruktion i kodobjekt. Detta är användbart när mindre kodobjekt och pyc-filer önskas samt för att undertrycka de extra visuella platsindikatorerna när tolken visar spårningar. Se ävenPYTHONNODEBUGRANGES.Tillagd i version 3.11.
\-X frozen_modulesbestämmer om frysta moduler ska ignoreras av importmaskineriet eller inte. Ett värde påonbetyder att de importeras ochoffbetyder att de ignoreras. Standardvärdet äronom detta är en installerad Python (normalfallet). Om det är under utveckling (körs från källträdet) är standardinställningenoff. Observera att de frysta modulernaimportlib_bootstrapochimportlib_bootstrap_externalalltid används, även om denna flagga är satt tilloff. Se ävenPYTHON_FROZEN_MODULES.Tillagd i version 3.11.
\-X perfaktiverar stöd för Linux profilerareperf. När det här alternativet anges kommer profilerarenperfatt kunna rapportera Python-anrop. Det här alternativet är endast tillgängligt på vissa plattformar och gör ingenting om det inte stöds på det aktuella systemet. Standardvärdet är ”off”. Se ävenPYTHONPERFSUPPORToch Python-stöd för Linux-profileraren perf.Tillagd i version 3.12.
\-X perf_jitaktiverar stöd för Linux profilerareperfmed DWARF-stöd. När det här alternativet anges kommer profilerarenperfatt kunna rapportera Python-anrop med DWARF-information. Detta alternativ är endast tillgängligt på vissa plattformar och kommer inte att göra någonting om det inte stöds på det aktuella systemet. Standardvärdet är ”off”. Se ävenPYTHON_PERF_JIT_SUPPORToch Python-stöd för Linux-profileraren perf.Tillagd i version 3.13.
\-X disable_remote_debuginaktiverar stödet för fjärravläsning enligt beskrivningen i PEP 768. Detta inkluderar både funktionalitet för att schemalägga kod för exekvering i en annan process och funktionalitet för att ta emot kod för exekvering i den aktuella processen.Detta alternativ är endast tillgängligt på vissa plattformar och gör ingenting om det inte stöds på det aktuella systemet. Se även
PYTHON_DISABLE_REMOTE_DEBUGoch PEP 768.Tillagd i version 3.14.
-X cpu_count=nåsidosätteros.cpu_count(),os.process_cpu_count()ochmultiprocessing.cpu_count(). n måste vara större än eller lika med 1. Det här alternativet kan vara användbart för användare som behöver begränsa processorresurserna i ett containersystem. Se ävenPYTHON_CPU_COUNT. Om n ärdefaultåsidosätts ingenting.Tillagd i version 3.13.
-X presite=package.moduleanger en modul som skall importeras innan modulensitekörs och innan modulen__main__existerar. Därför är den importerade modulen inte__main__. Detta kan användas för att exekvera kod tidigt under Python-initialiseringen. Python måste vara byggd i felsökningsläge för att detta alternativ ska finnas. Se ävenPYTHON_PRESITE.Tillagd i version 3.13.
-X gil=0,1tvingar GIL att inaktiveras respektive aktiveras. Inställning till0är endast tillgänglig i byggnationer konfigurerade med--disable-gil. Se ävenPYTHON_GILoch Fritt trådad CPython.Tillagd i version 3.13.
-X thread_inherit_context=0,1gör attThreadsom standard använder en kopia av kontexten för den som anroparThread.start()vid start. Annars kommer trådar att starta med en tom kontext. Om detta alternativ inte är inställt, är standardvärdet1på frittrådade byggsystem och annars0. Se ävenPYTHON_THREAD_INHERIT_CONTEXT.Tillagd i version 3.14.
-X context_aware_warnings=0,1gör att kontexthanterarenwarnings.catch_warningsanvänder enContextVarför att lagra filterstatus för varningar. Om detta alternativ inte är inställt är standardvärdet1på frittrådade byggsystem och annars0. Se ävenPYTHON_CONTEXT_AWARE_WARNINGS.Tillagd i version 3.14.
-X tlbc=0,1aktiverar (1, standard) eller inaktiverar (0) trådlokal bytekod i byggsystem som konfigurerats med--disable-gil. När det är inaktiverat inaktiveras även den specialiserade tolken. Se ävenPYTHON_TLBC.Tillagd i version 3.14.
Det går också att skicka godtyckliga värden och hämta dem via
sys._xoptions-ordlistan.Tillagd i version 3.2.
Ändrad i version 3.9: Tog bort alternativet
\-X showalloccount.Ändrad i version 3.10: Tog bort alternativet
\-X oldparser.
Borttagen i version 3.14: -J är inte längre reserverat för användning av Jython och har nu ingen speciell betydelse.
1.1.4. Styrning av färg¶
Python-tolken är som standard konfigurerad att använda färger för att markera utdata i vissa situationer, t.ex. när spårningar visas. Detta beteende kan kontrolleras genom att ställa in olika miljövariabler.
Om du ställer in miljövariabeln TERM till dumb inaktiveras färg.
Om miljövariabeln FORCE_COLOR är inställd kommer färg att aktiveras oavsett värdet på TERM. Detta är användbart på CI-system som inte är terminaler men som ändå kan visa ANSI escape-sekvenser.
Om miljövariabeln NO_COLOR är inställd kommer Python att inaktivera alla färger i utdata. Detta har företräde framför FORCE_COLOR.
Alla dessa miljövariabler används även av andra verktyg för att styra färgutmatningen. För att kontrollera färgutmatningen endast i Python-tolken kan miljövariabeln PYTHON_COLORS användas. Denna variabel har företräde framför NO_COLOR, som i sin tur har företräde framför FORCE_COLOR.
1.2. Miljövariabler¶
Dessa miljövariabler påverkar Pythons beteende och behandlas före andra kommandoradsinställningar än -E eller -I. Det är brukligt att kommandoradsknapparna åsidosätter miljövariablerna om det finns en konflikt.
- PYTHONHOME¶
Ändra platsen för standardbiblioteken i Python. Som standard söks biblioteken i
prefix/lib/pythonversionochexec_prefix/lib/pythonversion, därprefixochexec_prefixär installationsberoende kataloger, båda som standard/usr/local.När
PYTHONHOMEär inställd på en enda katalog ersätter dess värde bådeprefixochexec_prefix. Om du vill ange olika värden för dessa, anger duPYTHONHOMEtillprefix:exec_prefix.
- PYTHONPATH¶
Utökar standardsökvägen för modulfiler. Formatet är detsamma som skalets
PATH: ett eller flera katalogsöknamn separerade medos.pathsep(t.ex. kolon på Unix eller semikolon på Windows). Icke-existerande kataloger ignoreras i tysthet.Förutom vanliga kataloger kan enskilda
PYTHONPATH-poster hänvisa till zip-filer som innehåller rena Python-moduler (i antingen källkod eller kompilerad form). Tilläggsmoduler kan inte importeras från zipfiler.Standardsökvägen är installationsberoende, men börjar i allmänhet med
prefix/lib/pythonversion(sePYTHONHOMEovan). Den läggs alltid tillPYTHONPATH.En ytterligare katalog kommer att infogas i sökvägen framför
PYTHONPATHenligt beskrivningen ovan under Alternativ för gränssnitt. Sökvägen kan manipuleras inifrån ett Python-program som variabelnsys.path.
- PYTHONSAFEPATH¶
Om detta är satt till en icke-tom sträng, lägg inte till en potentiellt osäker sökväg till
sys.path: se alternativet-Pför mer information.Tillagd i version 3.11.
- PYTHONPLATLIBDIR¶
Om detta värde är en icke-tom sträng åsidosätter det
sys.platlibdir-värdet.Tillagd i version 3.9.
- PYTHONSTARTUP¶
Om detta är namnet på en läsbar fil, exekveras Python-kommandona i den filen innan den första prompten visas i interaktivt läge. Filen körs i samma namnrymd där interaktiva kommandon körs så att objekt som definieras eller importeras i den kan användas utan förbehåll i den interaktiva sessionen. Du kan också ändra prompterna
sys.ps1ochsys.ps2och hookensys.__interactivehook__i den här filen.Utlöser en auditing event
cpython.run_startupmed filnamnet som argument när den anropas vid start.
- PYTHONOPTIMIZE¶
Om detta anges till en icke-tom sträng motsvarar det angivandet av alternativet
-O. Om det anges till ett heltal motsvarar det att ange-Oflera gånger.
- PYTHONBREAKPOINT¶
Om detta är inställt namnges en anropsbar funktion med hjälp av en prickad sökväg. Modulen som innehåller den anropbara filen kommer att importeras och sedan kommer den anropbara filen att köras av standardimplementeringen av
sys.breakpointhook()som i sin tur anropas av den inbyggdabreakpoint(). Om den inte är inställd, eller är inställd på den tomma strängen, är den likvärdig med värdet ”pdb.set_trace”. Om den sätts till strängen ”0” gör standardimplementationen avsys.breakpointhook()ingenting annat än att återvända omedelbart.Tillagd i version 3.7.
- PYTHONDEBUG¶
Om detta anges som en icke-tom sträng motsvarar det angivandet av alternativet
-d. Om det anges till ett heltal motsvarar det att ange-dflera gånger.Denna miljövariabel kräver en debug-version av Python, annars ignoreras den.
- PYTHONINSPECT¶
Om detta anges som en icke-tom sträng motsvarar det alternativet
-i.Denna variabel kan också modifieras av Python-kod med hjälp av
os.environför att tvinga fram inspektionsläge när programmet avslutas.Utlöser en auditing event
cpython.run_stdinutan argument.Ändrad i version 3.12.5: (även 3.11.10, 3.10.15, 3.9.20 och 3.8.20) Ger upphov till granskningshändelser.
Ändrad i version 3.13: Använder PyREPL om möjligt, i vilket fall
PYTHONSTARTUPockså körs. Ger upphov till granskningshändelser.
- PYTHONVERBOSE¶
Om detta anges till en icke-tom sträng motsvarar det angivandet av alternativet
-v. Om det anges till ett heltal motsvarar det att ange-vflera gånger.
- PYTHONCASEOK¶
Om detta är inställt ignorerar Python versaler i
import-satser. Detta fungerar endast på Windows och macOS.
- PYTHONDONTWRITEBYTECODE¶
Om detta är satt till en icke-tom sträng, kommer Python inte att försöka skriva
.pyc-filer vid import av källmoduler. Detta är likvärdigt med att ange alternativet-B.
- PYTHONPYCACHEPREFIX¶
Om detta anges kommer Python att skriva
.pyc-filer i ett spegelkatalogträd på denna sökväg, istället för i__pycache__-kataloger i källträdet. Detta motsvarar att ange alternativet-Xpycache_prefix=PATH.Tillagd i version 3.8.
- PYTHONHASHSEED¶
Om variabeln inte är inställd eller om den är inställd på
randomanvänds ett slumpmässigt värde för att skapa hasharna för str- och bytes-objekten.Om
PYTHONHASHSEEDär inställt på ett heltal används det som ett fast frö för att generera hash() för de typer som omfattas av hashslumpningen.Syftet är att möjliggöra repeterbar hashning, t.ex. för självtest av själva tolken eller för att låta ett kluster av pythonprocesser dela hashvärden.
Heltalet måste vara ett decimaltal inom intervallet [0,4294967295]. Om du anger värdet 0 inaktiveras hashslumpning.
Tillagd i version 3.2.3.
- PYTHONINTMAXSTRDIGITS¶
Om den här variabeln är inställd på ett heltal används den för att konfigurera tolkens globala begränsning av längden för omvandling av heltalssträngar.
Tillagd i version 3.11.
- PYTHONIOENCODING¶
Om detta anges innan tolken körs, åsidosätter det kodningen som används för stdin/stdout/stderr, i syntaxen
encodingname:errorhandler. Både delarnaencodingnameoch:errorhandlerär valfria och har samma betydelse som istr.encode().För stderr ignoreras delen
:errorhandler; hanteraren kommer alltid att vara'backslashreplace.Ändrad i version 3.4: Delen
encodingnameär nu valfri.Ändrad i version 3.6: I Windows ignoreras den kodning som anges av denna variabel för interaktiva konsolbuffertar om inte
PYTHONLEGACYWINDOWSSTDIOockså anges. Filer och pipes som omdirigeras via standardströmmarna påverkas inte.
- PYTHONNOUSERSITE¶
Om detta är inställt kommer Python inte att lägga till
user site-packages directorytillsys.path.Se även
PEP 370 – Katalog för webbplats-paket för varje användare
- PYTHONUSERBASE¶
Definierar
user baskatalog, som används för att beräkna sökvägen tilluser site-packages katalogoch installationssökvägar förpython -m pip install --user.Se även
PEP 370 – Katalog för webbplats-paket för varje användare
- PYTHONEXECUTABLE¶
Om denna miljövariabel är inställd kommer
sys.argv[0]att sättas till dess värde istället för det värde som erhålls via C-körtiden. Fungerar endast på macOS.
- PYTHONWARNINGS¶
Detta motsvarar alternativet
-W. Om det anges till en kommaseparerad sträng motsvarar det att ange-Wflera gånger, med filter senare i listan som har företräde framför dem tidigare i listan.De enklaste inställningarna tillämpar en viss åtgärd villkorslöst på alla varningar som utfärdas av en process (även de som annars ignoreras som standard):
PYTHONWARNINGS=default # Varna en gång per samtalsplats PYTHONWARNINGS=error # Konvertera till undantag PYTHONWARNINGS=always # Varnar varje gång PYTHONWARNINGS=all # Samma som PYTHONWARNINGS=always PYTHONWARNINGS=module # Varnar en gång per anropande modul PYTHONWARNINGS=once # Varnar en gång per Python-process PYTHONWARNINGS=ignore # Varnar aldrig
Se Filtret för varningar och Beskrivning av varningsfilter för mer information.
- PYTHONFAULTHANDLER¶
Om denna miljövariabel är satt till en icke-tom sträng, anropas
faulthandler.enable()vid uppstart: installera en hanterare förSIGSEGV,SIGFPE,SIGABRT,SIGBUSochSIGILLsignaler för att dumpa Python-traceback. Detta är likvärdigt med-Xfaulthandleroption.Tillagd i version 3.3.
- PYTHONTRACEMALLOC¶
Om denna miljövariabel är satt till en icke-tom sträng, börja spåra Python-minnesallokeringar med modulen
tracemalloc. Värdet på variabeln är det maximala antalet frames som lagras i en traceback för en spårning. Till exempel,PYTHONTRACEMALLOC=1lagrar bara den senaste bilden. Se funktionentracemalloc.start()för mer information. Detta är likvärdigt med att ställa in-Xtracemallocoption.Tillagd i version 3.4.
- PYTHONPROFILEIMPORTTIME¶
Om denna miljövariabel är inställd på
1kommer Python att visa hur lång tid varje import tar. Om den är inställd på2kommer Python att inkludera utdata för importerade moduler som redan har laddats. Detta är likvärdigt med att ställa in-Ximporttimeoption.Tillagd i version 3.7.
Ändrad i version 3.14: Lagt till
PYTHONPROFILEIMPORTTIME=2för att även spåra import av laddade moduler.
- PYTHONASYNCIODEBUG¶
Om den här miljövariabeln är inställd på en icke-tom sträng aktiveras debugläge i modulen
asyncio.Tillagd i version 3.4.
- PYTHONMALLOC¶
Ställ in Pythons minnesallokatorer och/eller installera felsöknings-hooks.
Ange vilken familj av minnesallokatorer som används av Python:
default: använd standardminnesallokatorer.malloc: använd funktionenmalloc()i C-biblioteket för alla domäner (PYMEM_DOMAIN_RAW,PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ).pymalloc: använd pymalloc allocator för domänernaPYMEM_DOMAIN_MEMochPYMEM_DOMAIN_OBJoch använd funktionenmalloc()för domänenPYMEM_DOMAIN_RAW.mimalloc: använd mimalloc allocator för domänernaPYMEM_DOMAIN_MEMochPYMEM_DOMAIN_OBJoch använd funktionenmalloc()för domänenPYMEM_DOMAIN_RAW.
Installera debug hooks:
debug: installera felsöknings-hooks ovanpå standardminnesallokering.malloc_debug: samma sommallocmen installerar även debug-hooks.pymalloc_debug: samma sompymallocmen installerar även debug-hooks.mimalloc_debug: samma sommimallocmen installerar även debug-hooks.
Tillagd i version 3.6.
Ändrad i version 3.7: Lade till allokeringsverktyget
"default".
- PYTHONMALLOCSTATS¶
Om den är inställd på en icke-tom sträng kommer Python att skriva ut statistik över pymalloc memory allocator varje gång en ny pymalloc-objektarena skapas och vid avstängning.
Denna variabel ignoreras om miljövariabeln
PYTHONMALLOCanvänds för att tvinga fram allokeringsverktygetmalloc()i C-biblioteket, eller om Python är konfigurerat utan stöd förpymalloc.Ändrad i version 3.6: Denna variabel kan nu också användas på Python kompilerad i release-läge. Den har nu ingen effekt om den är inställd på en tom sträng.
- PYTHONLEGACYWINDOWSFSENCODING¶
Om inställningen är en icke-tom sträng kommer standardinställningarna filesystem encoding and error handler att återgå till sina pre-3.6 värden ’mbcs’ respektive ’replace’. Annars används de nya standardvärdena ’utf-8’ och ’surrogatepass’.
Detta kan också aktiveras under körning med
sys._enablelegacywindowsfsencoding().Tillgänglighet: Windows.
Tillagd i version 3.6: Se PEP 529 för mer information.
- PYTHONLEGACYWINDOWSSTDIO¶
Om inställningen är en icke-tom sträng används inte den nya konsolläsaren och -skrivaren. Detta innebär att Unicode-tecken kommer att kodas enligt den aktiva konsolkodsidan, i stället för att använda utf-8.
Denna variabel ignoreras om standardströmmarna omdirigeras (till filer eller pipes) i stället för att hänvisa till konsolbuffertar.
Tillgänglighet: Windows.
Tillagd i version 3.6.
- PYTHONCOERCECLOCALE¶
Om värdet
0anges, gör det att Pythons kommandoradsprogram hoppar över att tvinga de gamla ASCII-baserade C- och POSIX-lokalerna till ett mer kapabelt UTF-8-baserat alternativ.Om den här variabeln inte är inställd (eller är inställd på ett annat värde än
0), miljövariabelnLC_ALLlocale override inte heller är inställd, och den aktuella locale som rapporteras för kategorinLC_CTYPEär antingen standard localeC, eller den explicit ASCII-baserade localePOSIX, så kommer Python CLI att försöka konfigurera följande locale för kategorinLC_CTYPEi den ordning som anges innan tolkens runtime laddas:C.UTF-8C.utf8UTF-8
Om inställningen av en av dessa lokala kategorier lyckas, kommer miljövariabeln
LC_CTYPEockså att ställas in i enlighet med detta i den aktuella processmiljön innan Python-körtiden initieras. Detta säkerställer att den uppdaterade inställningen, förutom att ses av både tolken själv och andra lokalmedvetna komponenter som körs i samma process (t.ex. GNU-biblioteketreadline), även ses i underprocesser (oavsett om dessa processer kör en Python-tolk eller inte), samt i operationer som frågar efter miljön snarare än den aktuella C-lokalen (t.ex. Pythons egenlocale.getdefaultlocale()).Om du konfigurerar en av dessa lokala (antingen explicit eller via ovanstående implicita lokala tvång) aktiveras automatiskt
surrogateescapeerror handler försys.stdinochsys.stdout(sys.stderrfortsätter att användabackslashreplacesom det gör i alla andra lokala). Detta flödeshanteringsbeteende kan åsidosättas genom att användaPYTHONIOENCODINGsom vanligt.För felsökningsändamål kommer inställningen
PYTHONCOERCECLOCALE=warnatt få Python att avge varningsmeddelanden påstderrom antingen locale coercion aktiveras, eller om en locale som skulle ha utlöst coercion fortfarande är aktiv när Python runtime initieras.Observera också att även när locale coercion är inaktiverat, eller när det misslyckas med att hitta en lämplig mål locale, kommer
PYTHONUTF8fortfarande att aktiveras som standard i äldre ASCII-baserade locales. Båda funktionerna måste inaktiveras för att tvinga tolken att användaASCIIi stället förUTF-8för systemgränssnitt.Tillgänglighet: Unix.
Tillagd i version 3.7: Se PEP 538 för mer information.
- PYTHONDEVMODE¶
Om denna miljövariabel är satt till en icke-tom sträng, aktivera Python Development Mode, vilket introducerar ytterligare körtidskontroller som är för dyra för att vara aktiverade som standard. Detta är likvärdigt med att ställa in
-Xdevoption.Tillagd i version 3.7.
- PYTHONUTF8¶
Om inställningen är
1, aktiveras Python UTF-8 Mode.Om inställningen är
0, inaktiveras Python UTF-8 Mode.Om du anger någon annan icke-tom sträng uppstår ett fel under initieringen av tolken.
Tillagd i version 3.7.
- PYTHONWARNDEFAULTENCODING¶
Om denna miljövariabel är inställd på en icke-tom sträng, utfärda en
EncodingWarningnär den lokalspecifika standardkodningen används.Se Opt-in-kodningVarning för mer information.
Tillagd i version 3.10.
- PYTHONNODEBUGRANGES¶
Om den här variabeln är inställd inaktiveras inkluderingen av tabeller som mappar extra platsinformation (slutrad, startkolumnoffset och slutkolumnoffset) till varje instruktion i kodobjekt. Detta är användbart när mindre kodobjekt och pyc-filer önskas samt för att undertrycka de extra visuella platsindikatorerna när tolken visar spårningar.
Tillagd i version 3.11.
- PYTHONPERFSUPPORT¶
Om den här variabeln har ett värde som inte är noll aktiveras stöd för Linux profiler
perfså att Python-anrop kan upptäckas av den.Om inställningen är
0, inaktiveras Linuxperfprofileringsstöd.Se även kommandoradsalternativet
-X perfoch Python-stöd för Linux-profileraren perf.Tillagd i version 3.12.
- PYTHON_PERF_JIT_SUPPORT¶
Om den här variabeln har ett värde som inte är noll aktiveras stöd för Linux profiler
perfså att Python-anrop kan upptäckas med hjälp av DWARF-information.Om inställningen är
0, inaktiveras Linuxperfprofileringsstöd.Se även kommandoradsalternativet
-X perf_jitoch Python-stöd för Linux-profileraren perf.Tillagd i version 3.13.
- PYTHON_DISABLE_REMOTE_DEBUG¶
Om den här variabeln är inställd på en icke-tom sträng inaktiveras funktionen för fjärravläsning som beskrivs i PEP 768. Detta inkluderar både funktionen för att schemalägga kod för exekvering i en annan process och funktionen för att ta emot kod för exekvering i den aktuella processen.
Se även kommandoradsalternativet
-X disable_remote_debug.Tillagd i version 3.14.
- PYTHON_CPU_COUNT¶
Om denna variabel är inställd på ett positivt heltal åsidosätter den returvärdena för
os.cpu_count()ochos.process_cpu_count().Se även kommandoradsalternativet
-X cpu_count.Tillagd i version 3.13.
- PYTHON_FROZEN_MODULES¶
Om denna variabel är inställd på
onelleroffavgör den om frysta moduler ignoreras av importmaskineriet eller inte. Ett värde påonbetyder att de importeras ochoffbetyder att de ignoreras. Standardvärdet äronför icke-debug-byggnader (normalfallet) ochoffför debug-byggnader. Observera att de frysta modulernaimportlib_bootstrapochimportlib_bootstrap_externalalltid används, även om flaggan är satt tilloff.Se även kommandoradsalternativet
-X frozen_modules.Tillagd i version 3.13.
- PYTHON_COLORS¶
Om denna variabel är inställd på
1kommer tolken att färglägga olika typer av utdata. Om den sätts till0avaktiveras detta beteende. Se även Styrning av färg.Tillagd i version 3.13.
- PYTHON_BASIC_REPL¶
Om den här variabeln har ett valfritt värde kommer tolken inte att försöka ladda den Python-baserade REPL som kräver
cursesochreadline, utan istället använda den traditionella parser-baserade REPL.Tillagd i version 3.13.
- PYTHON_HISTORY¶
Denna miljövariabel kan användas för att ange platsen för filen
.python_history(som standard är den.python_historyi användarens hemkatalog).Tillagd i version 3.13.
- PYTHON_GIL¶
Om denna variabel sätts till
1, kommer det globala tolklåset (GIL) att tvingas på. Om den sätts till0tvingas GIL att stängas av (kräver Python konfigurerat med byggalternativet--disable-gil).Se även kommandoradsalternativet
-X gil, som har företräde framför denna variabel, och Fritt trådad CPython.Tillagd i version 3.13.
- PYTHON_THREAD_INHERIT_CONTEXT¶
Om denna variabel är inställd på
1kommerThreadsom standard att använda en kopia av kontexten för den som anroparThread.start()vid start. Annars kommer nya trådar att starta med en tom kontext. Om den här variabeln inte är inställd, är standardvärdet1på free-threaded builds och annars0. Se även-X thread_inherit_context.Tillagd i version 3.14.
- PYTHON_CONTEXT_AWARE_WARNINGS¶
Om den är satt till
1kommer kontexthanterarenwarnings.catch_warningsatt använda enContextVarför att lagra filterstatus för varningar. Om den här variabeln inte är inställd är standardvärdet1på frittrådade byggsystem och annars0. Se-X context_aware_warnings.Tillagd i version 3.14.
- PYTHON_JIT¶
På byggsystem där experimentell just-in-time-kompilering är tillgänglig kan denna variabel tvinga JIT att inaktiveras (
0) eller aktiveras (1) vid start av tolken.Tillagd i version 3.13.
- PYTHON_TLBC¶
Om inställningen är
1aktiveras trådlokal bytecode. Om inställningen är0inaktiveras trådlokal bytecode och den specialiserade tolken. Gäller endast för byggen som konfigurerats med--disable-gil.Se även kommandoradsalternativet
-X tlbc.Tillagd i version 3.14.
1.2.1. Variabler för felsökningsläge¶
- PYTHONDUMPREFS¶
Om den är inställd kommer Python att dumpa objekt och referensräkningar som fortfarande är vid liv efter att tolken stängts av.
Kräver Python konfigurerat med byggalternativet
--with-trace-refs.
- PYTHONDUMPREFSFILE¶
Om den är inställd kommer Python att dumpa objekt och referensräkningar som fortfarande är vid liv efter att tolken stängts av i en fil under den sökväg som anges som värde för denna miljövariabel.
Kräver Python konfigurerat med byggalternativet
--with-trace-refs.Tillagd i version 3.11.
- PYTHON_PRESITE¶
Om variabeln är inställd på en modul kommer den modulen att importeras tidigt i tolkens livscykel, innan modulen
siteexekveras och innan modulen__main__skapas. Därför behandlas den importerade modulen inte som__main__.Detta kan användas för att exekvera kod tidigt under Python-initialiseringen.
För att importera en undermodul använder du
package.modulesom värde, precis som i en importsats.Se även kommandoradsalternativet
-X presite, som har företräde framför den här variabeln.Kräver Python konfigurerat med byggalternativet
--with-pydebug.Tillagd i version 3.13.