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 modulnamn
placeras 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.argv
att 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_command
med argumentetcommand
.Ändrad i version 3.14: command är automatiskt dedented före verkställighet.
- -m <module-name>¶
Sök i
sys.path
efter 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.argv
att 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-c
läggs den aktuella katalogen till i början avsys.path
.-I
option kan användas för att köra skriptet i isolerat läge därsys.path
varken 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_module
med 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-i
underförstådd.Om detta alternativ anges kommer det första elementet i
sys.argv
att vara"-"
och den aktuella katalogen kommer att läggas till i början avsys.path
.Utlöser en auditing event
cpython.run_stdin
utan 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__.py
eller en zip-fil som innehåller filen__main__.py
.Om detta alternativ anges kommer det första elementet i
sys.argv
att 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.path
och filen exekveras som__main__
-modulen.Om skriptnamnet hänvisar till en katalog eller zip-fil läggs skriptnamnet till i början av
sys.path
och filen__main__.py
på den platsen exekveras som modulen__main__
.-I
option kan användas för att köra skriptet i isolerat läge därsys.path
varken innehåller skriptets katalog eller användarens katalog för site-paket. AllaPYTHON*
miljövariabler ignoreras också.Utlöser en auditing event
cpython.run_file
med 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
bytes
ellerbytearray
tillstr
utan att ange kodning eller jämförbytes
ellerbytearray
medstr
ellerbytes
medint
. 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ådefault
valideras kontrollerade och okontrollerade hash-baserade bytecode-cachefiler enligt deras standardsemantik. När inställningen äralways
valideras alla hash-baserade.pyc
-filer, oavsett om de är markerade eller omarkerade, mot motsvarande källfil. När inställningen ärnever
valideras 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.PYTHONPATH
ochPYTHONHOME
, som kan vara inställda.
- -i¶
Gå till interaktivt läge efter körning.
Om du använder alternativet
-i
aktiveras interaktivt läge under någon av följande omständigheter:Interaktivt läge kommer att starta även om
sys.stdin
inte verkar vara en terminal. FilenPYTHONSTARTUP
lä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
,-P
och-s
.I isolerat läge innehåller
sys.path
varken 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-1
före.pyc
(se PEP 488). Se ävenPYTHONOPTIMIZE
.Ändrad i version 3.5: Ändra
.pyc
filnamn enligt PEP 488.
- -OO¶
Gör
-O
och förkasta även docstrings. Förbättra filnamnet för kompilerade (bytecode) filer genom att lägga till.opt-2
före ändelsen.pyc
(se PEP 488).Ändrad i version 3.5: Ändra
.pyc
filnamn enligt PEP 488.
- -P¶
Lägg inte till en potentiellt osäker sökväg till
sys.path
:python -m modul
kommandoraden: Lägg inte till den aktuella arbetskatalogen före.python script.py
kommandoraden: Ange inte skriptets katalog i förväg. Om det är en symbolisk länk, lös symboliska länkar.kommandoraderna
python -c code
ochpython
(REPL): Lägg inte till en tom sträng, vilket betyder den aktuella arbetskatalogen.
Se även miljövariabeln
PYTHONSAFEPATH
och alternativen-E
och-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.
PYTHONHASHSEED
gö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-packages
isys.path
.Se även
PYTHONNOUSERSITE
.Se även
PEP 370 – Katalog för webbplats-paket för varje användare
- -S¶
Inaktivera importen av modulen
site
och de platsberoende manipuleringarna avsys.path
som den medför. Inaktivera även dessa manipuleringar omsite
uttryckligen 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
site
rapporterar 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
-Wi
samma 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::DeprecationWarning
ignorerar 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
PYTHONWARNINGS
och 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 faulthandler
för att aktiverafaulthandler
. Se ävenPYTHONFAULTHANDLER
.Tillagd i version 3.3.
-X showrefcount
fö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 tracemalloc
fö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=NFRAME
för att starta spårning med en spårningsgräns på NFRAME ramar. Setracemalloc.start()
ochPYTHONTRACEMALLOC
för mer information.Tillagd i version 3.4.
-X int_max_str_digits
konfigurerar begränsning av längden för konvertering av heltalssträngar. Se ävenPYTHONINTMAXSTRDIGITS
.Tillagd i version 3.11.
-X importtime
fö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=2
aktiverar ytterligare utdata som indikerar när en importerad modul redan har laddats. I sådana fall kommer strängencached
att skrivas ut i båda tidskolumnerna.Se även
PYTHONPROFILEIMPORTTIME
.Tillagd i version 3.7.
Ändrad i version 3.14: Lade till
-X importtime=2
för att även spåra import av laddade moduler, och reserverade andra värden än1
och2
fö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 utf8
aktiverar Python UTF-8 Mode.-X utf8=0
inaktiverar explicit Python UTF-8 Mode (även om det annars skulle aktiveras automatiskt). Se ävenPYTHONUTF8
.Tillagd i version 3.7.
-X pycache_prefix=PATH
gö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_encoding
utfärdar enEncodingWarning
när den lokalspecifika standardkodningen används för att öppna filer. Se ävenPYTHONWARNDEFAULTENCODING
.Tillagd i version 3.10.
-X no_debug_ranges
inaktiverar 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_modules
bestämmer om frysta moduler ska ignoreras av importmaskineriet eller inte. Ett värde påon
betyder att de importeras ochoff
betyder att de ignoreras. Standardvärdet äron
om 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_bootstrap
ochimportlib_bootstrap_external
alltid används, även om denna flagga är satt tilloff
. Se ävenPYTHON_FROZEN_MODULES
.Tillagd i version 3.11.
-X perf
aktiverar stöd för Linux profilerareperf
. När det här alternativet anges kommer profilerarenperf
att 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 ävenPYTHONPERFSUPPORT
och Python-stöd för Linux-profileraren perf.Tillagd i version 3.12.
-X perf_jit
aktiverar stöd för Linux profilerareperf
med DWARF-stöd. När det här alternativet anges kommer profilerarenperf
att 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_SUPPORT
och Python-stöd för Linux-profileraren perf.Tillagd i version 3.13.
-X disable_remote_debug
inaktiverar 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_DEBUG
och 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.module
anger en modul som skall importeras innan modulensite
kö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,1
tvingar GIL att inaktiveras respektive aktiveras. Inställning till0
är endast tillgänglig i byggnationer konfigurerade med--disable-gil
. Se ävenPYTHON_GIL
och Fri trådad CPython.Tillagd i version 3.13.
-X thread_inherit_context=0,1
gör attThread
som 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ärdet1
på frittrådade byggsystem och annars0
. Se ävenPYTHON_THREAD_INHERIT_CONTEXT
.Tillagd i version 3.14.
-X context_aware_warnings=0,1
gör att kontexthanterarenwarnings.catch_warnings
använder enContextVar
för att lagra filterstatus för varningar. Om detta alternativ inte är inställt är standardvärdet1
på frittrådade byggsystem och annars0
. Se ävenPYTHON_CONTEXT_AWARE_WARNINGS
.Tillagd i version 3.14.
-X tlbc=0,1
aktiverar (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/pythonversion
ochexec_prefix/lib/pythonversion
, därprefix
ochexec_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ådeprefix
ochexec_prefix
. Om du vill ange olika värden för dessa, anger duPYTHONHOME
tillprefix: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
(sePYTHONHOME
ovan). Den läggs alltid tillPYTHONPATH
.En ytterligare katalog kommer att infogas i sökvägen framför
PYTHONPATH
enligt 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-P
fö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.ps1
ochsys.ps2
och hookensys.__interactivehook__
i den här filen.Utlöser en auditing event
cpython.run_startup
med 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-O
flera 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-d
flera 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.environ
för att tvinga fram inspektionsläge när programmet avslutas.Utlöser en auditing event
cpython.run_stdin
utan 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
PYTHONSTARTUP
också 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-v
flera 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-X
pycache_prefix=PATH
.Tillagd i version 3.8.
- PYTHONHASHSEED¶
Om variabeln inte är inställd eller om den är inställd på
random
anvä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 delarnaencodingname
och: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
PYTHONLEGACYWINDOWSSTDIO
också 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 directory
tillsys.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 katalog
och 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-W
flera 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
,SIGBUS
ochSIGILL
signaler för att dumpa Python-traceback. Detta är likvärdigt med-X
faulthandler
option.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=1
lagrar bara den senaste bilden. Se funktionentracemalloc.start()
för mer information. Detta är likvärdigt med att ställa in-X
tracemalloc
option.Tillagd i version 3.4.
- PYTHONPROFILEIMPORTTIME¶
Om denna miljövariabel är inställd på
1
kommer Python att visa hur lång tid varje import tar. Om den är inställd på2
kommer Python att inkludera utdata för importerade moduler som redan har laddats. Detta är likvärdigt med att ställa in-X
importtime
option.Tillagd i version 3.7.
Ändrad i version 3.14: Lagt till
PYTHONPROFILEIMPORTTIME=2
fö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_MEM
ochPYMEM_DOMAIN_OBJ
och använd funktionenmalloc()
för domänenPYMEM_DOMAIN_RAW
.mimalloc
: använd mimalloc allocator för domänernaPYMEM_DOMAIN_MEM
ochPYMEM_DOMAIN_OBJ
och använd funktionenmalloc()
för domänenPYMEM_DOMAIN_RAW
.
Installera debug hooks:
debug
: installera felsöknings-hooks ovanpå standardminnesallokering.malloc_debug
: samma sommalloc
men installerar även debug-hooks.pymalloc_debug
: samma sompymalloc
men installerar även debug-hooks.mimalloc_debug
: samma sommimalloc
men 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
PYTHONMALLOC
anvä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
0
anges, 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_ALL
locale 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_CTYPE
i den ordning som anges innan tolkens runtime laddas:C.UTF-8
C.utf8
UTF-8
Om inställningen av en av dessa lokala kategorier lyckas, kommer miljövariabeln
LC_CTYPE
också 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
surrogateescape
error handler försys.stdin
ochsys.stdout
(sys.stderr
fortsätter att användabackslashreplace
som det gör i alla andra lokala). Detta flödeshanteringsbeteende kan åsidosättas genom att användaPYTHONIOENCODING
som vanligt.För felsökningsändamål kommer inställningen
PYTHONCOERCECLOCALE=warn
att få Python att avge varningsmeddelanden påstderr
om 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
PYTHONUTF8
fortfarande att aktiveras som standard i äldre ASCII-baserade locales. Båda funktionerna måste inaktiveras för att tvinga tolken att användaASCII
i stället förUTF-8
fö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
-X
dev
option.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
EncodingWarning
nä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
perf
så att Python-anrop kan upptäckas av den.Om inställningen är
0
, inaktiveras Linuxperf
profileringsstöd.Se även kommandoradsalternativet
-X perf
och 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
perf
så att Python-anrop kan upptäckas med hjälp av DWARF-information.Om inställningen är
0
, inaktiveras Linuxperf
profileringsstöd.Se även kommandoradsalternativet
-X perf_jit
och 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å
on
elleroff
avgör den om frysta moduler ignoreras av importmaskineriet eller inte. Ett värde påon
betyder att de importeras ochoff
betyder att de ignoreras. Standardvärdet äron
för icke-debug-byggnader (normalfallet) ochoff
för debug-byggnader. Observera att de frysta modulernaimportlib_bootstrap
ochimportlib_bootstrap_external
alltid 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å
1
kommer tolken att färglägga olika typer av utdata. Om den sätts till0
avaktiveras 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
curses
ochreadline
, 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_history
i 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 till0
tvingas 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 Fri trådad CPython.Tillagd i version 3.13.
- PYTHON_THREAD_INHERIT_CONTEXT¶
Om denna variabel är inställd på
1
kommerThread
som 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ärdet1
på 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
1
kommer kontexthanterarenwarnings.catch_warnings
att använda enContextVar
för att lagra filterstatus för varningar. Om den här variabeln inte är inställd är standardvärdet1
på 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
1
aktiveras trådlokal bytecode. Om inställningen är0
inaktiveras 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
site
exekveras 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.module
som 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.