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 av sys.path (vilket gör att moduler i den katalogen kan importeras som toppnivåmoduler).

Utlöser en auditing event cpython.run_command med argumentet command.

Ä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 av sys.path.

-I option kan användas för att köra skriptet i isolerat läge där sys.path varken innehåller den aktuella katalogen eller användarens katalog för site-paket. Alla PYTHON* 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 argumentet module-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 av sys.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är sys.path varken innehåller skriptets katalog eller användarens katalog för site-paket. Alla PYTHON* miljövariabler ignoreras också.

Utlöser en auditing event cpython.run_file med argumentet filename.

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

Anropa tolken

Ä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.

-V
--version

Skriv ut Pythons versionsnummer och avsluta. Exempel på utdata kan vara:

Python 3.8.0b2+

När det ges två gånger, skriv ut mer information om byggnaden, t.ex:

Python 3.8.0b2+ (3.8:0c076caaa8, 20 apr 2019, 21:55:00)
[GCC 6.2.0 20161005]

Tillagd i version 3.6: Alternativet -VV.

1.1.3. Diverse alternativ

-b

Utfärda en varning när du konverterar bytes eller bytearray till str utan att ange kodning eller jämför bytes eller bytearray med str eller bytes med int. Utfärdar ett fel när alternativet ges två gånger (-bb).

Ändrad i version 3.5: Påverkar även jämförelser av bytes med int.

-B

Om den anges kommer Python inte att försöka skriva .pyc-filer vid import av källmoduler. Se även PYTHONDONTWRITEBYTECODE.

--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 är always valideras alla hash-baserade .pyc-filer, oavsett om de är markerade eller omarkerade, mot motsvarande källfil. När inställningen är never 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 och PYTHONHOME, som kan vara inställda.

Se även alternativen -P och -I (isolerade).

-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:

  • När ett skript skickas som första argument

  • När alternativet -c används

  • När alternativet -m används

Interaktivt läge kommer att starta även om sys.stdin inte verkar vara en terminal. Filen PYTHONSTARTUP 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. Alla PYTHON* 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 även PYTHONOPTIMIZE.

Ä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 och python (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 i sys.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 av sys.path som den medför. Inaktivera även dessa manipuleringar om site uttryckligen importeras senare (anropa site.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 modulen warnings. Till exempel kan funktionen warnings.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 aktivera faulthandler. Se även PYTHONFAULTHANDLER.

    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 modulen tracemalloc. 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. Se tracemalloc.start() och PYTHONTRACEMALLOC 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 även PYTHONINTMAXSTRDIGITS.

    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 är python -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ängen cached 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 än 1 och 2 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 även PYTHONDEVMODE.

    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 även PYTHONUTF8.

    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 även PYTHONPYCACHEPREFIX.

    Tillagd i version 3.8.

  • -X warn_default_encoding utfärdar en EncodingWarning när den lokalspecifika standardkodningen används för att öppna filer. Se även PYTHONWARNDEFAULTENCODING.

    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 även PYTHONNODEBUGRANGES.

    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 och off betyder att de ignoreras. Standardvärdet är on om detta är en installerad Python (normalfallet). Om det är under utveckling (körs från källträdet) är standardinställningen off. Observera att de frysta modulerna importlib_bootstrap och importlib_bootstrap_external alltid används, även om denna flagga är satt till off. Se även PYTHON_FROZEN_MODULES.

    Tillagd i version 3.11.

  • -X perf aktiverar stöd för Linux profilerare perf. När det här alternativet anges kommer profileraren perf 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 även PYTHONPERFSUPPORT och Python-stöd för Linux-profileraren perf.

    Tillagd i version 3.12.

  • -X perf_jit aktiverar stöd för Linux profilerare perf med DWARF-stöd. När det här alternativet anges kommer profileraren perf 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 även PYTHON_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ätter os.cpu_count(), os.process_cpu_count() och multiprocessing.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 även PYTHON_CPU_COUNT. Om n är default åsidosätts ingenting.

    Tillagd i version 3.13.

  • -X presite=package.module anger en modul som skall importeras innan modulen site 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 även PYTHON_PRESITE.

    Tillagd i version 3.13.

  • -X gil=0,1 tvingar GIL att inaktiveras respektive aktiveras. Inställning till 0 är endast tillgänglig i byggnationer konfigurerade med --disable-gil. Se även PYTHON_GIL och Fri trådad CPython.

    Tillagd i version 3.13.

  • -X thread_inherit_context=0,1 gör att Thread som standard använder en kopia av kontexten för den som anropar Thread.start() vid start. Annars kommer trådar att starta med en tom kontext. Om detta alternativ inte är inställt, är standardvärdet 1 på frittrådade byggsystem och annars 0. Se även PYTHON_THREAD_INHERIT_CONTEXT.

    Tillagd i version 3.14.

  • -X context_aware_warnings=0,1 gör att kontexthanteraren warnings.catch_warnings använder en ContextVar för att lagra filterstatus för varningar. Om detta alternativ inte är inställt är standardvärdet 1 på frittrådade byggsystem och annars 0. Se även PYTHON_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 även PYTHON_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 och exec_prefix/lib/pythonversion, där prefix och exec_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åde prefix och exec_prefix. Om du vill ange olika värden för dessa, anger du PYTHONHOME till prefix:exec_prefix.

PYTHONPATH

Utökar standardsökvägen för modulfiler. Formatet är detsamma som skalets PATH: ett eller flera katalogsöknamn separerade med os.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 (se PYTHONHOME ovan). Den läggs alltid till PYTHONPATH.

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 variabeln sys.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 och sys.ps2 och hooken sys.__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 inbyggda breakpoint(). 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 av sys.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.

PYTHONUNBUFFERED

Om detta anges till en icke-tom sträng motsvarar det alternativet -u.

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 delarna encodingname och :errorhandler är valfria och har samma betydelse som i str.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 till sys.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 till user site-packages katalog och installationssökvägar för python -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ör SIGSEGV, SIGFPE, SIGABRT, SIGBUS och SIGILL 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 funktionen tracemalloc.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:

Installera debug hooks:

  • debug: installera felsöknings-hooks ovanpå standardminnesallokering.

  • malloc_debug: samma som malloc men installerar även debug-hooks.

  • pymalloc_debug: samma som pymalloc men installerar även debug-hooks.

  • mimalloc_debug: samma som mimalloc 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 allokeringsverktyget malloc() i C-biblioteket, eller om Python är konfigurerat utan stöd för pymalloc.

Ä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övariabeln LC_ALL locale override inte heller är inställd, och den aktuella locale som rapporteras för kategorin LC_CTYPE är antingen standard locale C, eller den explicit ASCII-baserade locale POSIX, så kommer Python CLI att försöka konfigurera följande locale för kategorin LC_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-biblioteket readline), ä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 egen locale.getdefaultlocale()).

Om du konfigurerar en av dessa lokala (antingen explicit eller via ovanstående implicita lokala tvång) aktiveras automatiskt surrogateescape error handler för sys.stdin och sys.stdout (sys.stderr fortsätter att använda backslashreplace som det gör i alla andra lokala). Detta flödeshanteringsbeteende kan åsidosättas genom att använda PYTHONIOENCODING 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ända ASCII i stället för UTF-8 för systemgränssnitt.

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 Linux perf 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 Linux perf 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() och os.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 eller off avgör den om frysta moduler ignoreras av importmaskineriet eller inte. Ett värde på on betyder att de importeras och off betyder att de ignoreras. Standardvärdet är on för icke-debug-byggnader (normalfallet) och off för debug-byggnader. Observera att de frysta modulerna importlib_bootstrap och importlib_bootstrap_external alltid används, även om flaggan är satt till off.

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 till 0 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 och readline, 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 till 0 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 kommer Thread som standard att använda en kopia av kontexten för den som anropar Thread.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ärdet 1 på free-threaded builds och annars 0. Se även -X thread_inherit_context.

Tillagd i version 3.14.

PYTHON_CONTEXT_AWARE_WARNINGS

Om den är satt till 1 kommer kontexthanteraren warnings.catch_warnings att använda en ContextVar för att lagra filterstatus för varningar. Om den här variabeln inte är inställd är standardvärdet 1 på frittrådade byggsystem och annars 0. 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 är 0 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.