1.2. Miljövariabler¶
dessa miljövariabler påverkar Pythons beteende, de bearbetas innan kommandoradsväxlarna andra än-E eller-I. Det är vanligt attkommandoradsväxlar åsidosätter miljövariabler där det finns enkonflikt.
PYTHONHOME
¶
ändra platsen för de vanliga Python-biblioteken., Som standard söks thelibraries i prefix/lib/pythonversion
ochexec_prefix/lib/pythonversion
, där prefix
ochexec_prefix
är installationsberoende kataloger, båda defaultingto /usr/local
.
NärPYTHONHOME
är inställd på en enda katalog, ersätter dess värdebådeprefix
ochexec_prefix
. För att ange olika värdeför dessa, ange PYTHONHOME
till prefix:exec_prefix
.
PYTHONPATH
¶
Öka standardsökvägen för modulfiler., Formatet är detsamma somhans PATH
: en eller flera katalogsökvägar separerade medos.pathsep
(t.ex. kolon på Unix eller semikolon på Windows).Obefintliga kataloger ignoreras tyst.
förutom vanliga kataloger, individuellaPYTHONPATH
entreesmay hänvisar till zipfiles som innehåller rena Python-moduler (i antingen källa ellerkompilerad form). Tilläggsmoduler kan inte importeras från zipfiles.,
standardsökvägen är installationsberoende, men börjar i allmänhet medprefix/lib/pythonversion
(se PYTHONHOME
ovan). Itis läggs alltid till PYTHONPATH
.
en ytterligare katalog infogas i sökvägen framförPYTHONPATH
enligt beskrivningen ovan underInterface-alternativ. Sökvägen kan manipuleras fråni ett Python-program som variabeln sys.path
.
PYTHONPLATLIBDIR
¶
om den är inställd på en icke-tom sträng åsidosätter den värdetsys.platlibdir
.,
nytt i version 3.9.
PYTHONSTARTUP
¶
om det här är namnet på en läsbar fil, visas Python-kommandona i den filen innan den första prompten visas i interaktivt läge. Filen exekveras i samma namnområde där interaktiva kommandon exekveras såatt objekt som definieras eller importeras i den kan användas utan kvalifikation i den interaktiva sessionen. Du kan också ändra anvisningarna sys.ps1
ochsys.ps2
och kroken sys.__interactivehook__
I den här filen.,
höjer en revisionshändelsecpython.run_startup
medfilnamnet som argumentet när det anropas vid start.
PYTHONOPTIMIZE
¶
om detta är inställt på en icke-tom sträng motsvarar det att ange alternativet-O
. Om den är inställd på ett heltal motsvarar den att ange-O
flera gånger.
PYTHONBREAKPOINT
¶
om detta är inställt namnger det en callable med prickad path notation., Den modulecontaining de inlösbara kommer att importeras och sedan inlösbara kommer att vara runby standard genomförandet av sys.breakpointhook()
som i sig iscalled med inbyggd breakpoint()
. Om den inte är inställd, eller inställd på tomtsträngen, motsvarar den värdet ” pdb.set_trace”. Om du ställer in detta på strängen ” 0 ” orsakar standardimplementeringen av sys.breakpointhook()
att göra ingenting annat än att återvända omedelbart.
nytt i version 3.7.,
PYTHONDEBUG
¶
om detta är inställt på en icke-tom sträng motsvarar det att ange alternativet-d
. Om den är inställd på ett heltal motsvarar den att ange-d
flera gånger.
PYTHONOLDPARSER
¶
om detta är inställt på en icke-tom sträng, aktivera den traditionella LL(1) tolken.
Se även alternativet-X
oldparser
och Pep 617.
föråldrad sedan version 3.9, kommer att tas bort i version 3.10.,
PYTHONINSPECT
¶
om detta är inställt på en icke-tom sträng motsvarar det att ange alternativet-i
.
denna variabel kan också ändras med Python-kod medos.environ
för att tvinga inspektera läget vid programterminering.
PYTHONUNBUFFERED
¶
om detta är inställt på en icke-tom sträng motsvarar det att ange alternativet-u
.
PYTHONVERBOSE
¶
om detta är inställt på en icke-tom sträng motsvarar det att ange alternativet-v
., Om det är inställt på ett heltal motsvarar det att ange-v
flera gånger.
PYTHONCASEOK
¶
om detta är inställt ignorerar Python fallet iimport
– satser. Thisonly fungerar på Windows och OS X.
PYTHONDONTWRITEBYTECODE
¶
om detta är inställt på en icke-tom sträng försöker Python inte skriva .pyc
filer vid import av källmoduler. Detta motsvarar attbestämma alternativet-B
.,
PYTHONPYCACHEPREFIX
¶
om detta är inställt skriver Python.pyc
filer i en spegelkatalog trädpå den här sökvägen, istället för i__pycache__
kataloger i källträdet. Detta motsvarar att ange alternativet-X
pycache_prefix=PATH
.
nytt i version 3.8.
PYTHONHASHSEED
¶
om denna variabel inte är inställd eller inställd pårandom
används ett slumpmässigt värdeför att fröna hasharna i STR-och byte-objekt.,
om PYTHONHASHSEED
är inställt på ett heltal, används det som en fixedseed för att generera hash() av de typer som omfattas av hashrandomiseringen.
dess syfte är att tillåta repeterbar hashing, till exempel för selftests för theinterpreter själv, eller för att tillåta ett kluster av python-processer att dela hashvalues.
heltalet måste vara ett decimaltal i intervallet . Specificeringvärdet 0 kommer att inaktivera hash randomisering.
nytt i version 3.2.3.,
PYTHONIOENCODING
¶
om detta är inställt innan tolken körs, åsidosätter den kodningen usedfor stdin/stdout/stderr, i syntaxenencodingname:errorhandler
. Boththeencodingname
och:errorhandler
delar är valfria och har samma betydelse som istr.encode()
.
för stderr ignoreras:errorhandler
– delen; hanteraren kommer alltid att vara'backslashreplace'
.
ändrad i version 3.4:encodingname
– delen är nu valfri.
ändrad i version 3.,6: i Windows ignoreras den kodning som anges av denna variabel för interactiveconsole buffertar om intePYTHONLEGACYWINDOWSSTDIO
också anges.Filer och rör omdirigeras genom standardströmmarna påverkas inte.
PYTHONNOUSERSITE
¶
om detta är inställt kommer Python inte att lägga tilluser site-packages directory
tillsys.path
.,
Se även
Pep 370 – per user site-packages directory
PYTHONUSERBASE
¶
definieraruser base directory
, som används för attjämföra sökvägen tilluser site-packages directory
och Distributils installationsvägar förpython setup.py install --user
.
Se även
Pep 370 – per user site-packages directory
PYTHONEXECUTABLE
¶
om denna miljövariabel är inställd kommersys.argv
att ställas in på itsvalue istället för värdet som kom genom C-runtime. Fungerar bara onMac OS X.,
PYTHONWARNINGS
¶
detta motsvarar alternativet-W
. Om den är inställd på en kommaseparerad sträng, motsvarar den att ange -W
multipletimes, med filter senare i listan som har företräde framför de tidigarei listan.
de enklaste inställningarna gäller en viss åtgärd ovillkorligt för allavarningar som avges av en process (även de som annars ignoreras avdefault):
PYTHONWARNINGS=default # Warn once per call locationPYTHONWARNINGS=error # Convert to exceptionsPYTHONWARNINGS=always # Warn every timePYTHONWARNINGS=module # Warn once per calling modulePYTHONWARNINGS=once # Warn once per Python processPYTHONWARNINGS=ignore # Never warn
se Varningsfiltret och beskriva Varningsfilter för moredetails.,
PYTHONFAULTHANDLER
¶
om miljövariabeln är inställd på en icke-tom sträng anropasfaulthandler.enable()
vid start: installera en hanterare förSIGSEGV
,SIGFPE
,SIGABRT
,SIGSEGV
,SIGFPE
, SIGABRT
, SIGBUS
och SIGILL
signaler för att dumpa Python traceback. Detta motsvarar-X
faulthandler
– alternativet.
nytt i version 3.3.,
PYTHONTRACEMALLOC
¶
om den här miljövariabeln är inställd på en icke-tom sträng, börja spåra minnestilldelningar med hjälp avtracemalloc
– modulen. Värdet på variabeln är det maximala antalet ramar som lagras i en traceback av atrace. Till exempelPYTHONTRACEMALLOC=1
lagrar endast den mest recentframe. Se tracemalloc.start()
för mer information.
nytt i version 3.4.
PYTHONPROFILEIMPORTTIME
¶
om miljövariabeln är inställd på en icke-tom sträng visar Python hur lång tid varje import tar., Detta motsvarar exakt inställningen-X importtime
på kommandoraden.
nytt i version 3.7.
PYTHONASYNCIODEBUG
¶
om den här miljövariabeln är inställd på en icke-tom sträng, aktivera läget för asyncio
– modulen.
nytt i version 3.4.
PYTHONMALLOC
¶
Ställ in Python memory allokatorer och / eller installera debug krokar.,
Ställ in familjen av minnesallokatorer som används av Python:
Installera debug hooks:
-
debug
: installera debug hooks ovanpå standardminnetallocators. -
malloc_debug
: samma sommalloc
men också installera debug krokar. -
pymalloc_debug
: samma sompymalloc
men också installera debug krokar.
se förvalda minnesfördelningar och funktionenPyMem_SetupDebugHooks()
(installera felsökningskrokar på Pythonmemory allokatorer).
ändrad i version 3.,7: lade till"default"
allokator.
nytt i version 3.6.
PYTHONMALLOCSTATS
¶
om den är inställd på en icke-tom sträng, kommer Python att skriva ut statistik för thepymalloc memory allocator varje gång en ny pymalloc objectarena skapas, och vid avstängning.
denna variabel ignoreras omPYTHONMALLOC
miljövariabelanvänds för att tvingamalloc()
allokeraren för C-biblioteket, eller ifPython konfigureras utan stöd förpymalloc
.
ändrad i version 3.,6: Denna variabel kan nu också användas på Python sammanställts i release-läge.Nu när det har ingen effekt om den är inställd till en tom sträng.
PYTHONLEGACYWINDOWSFSENCODING
¶
om den är inställd på en icke-tom sträng, återgår standardfilsystemskodning och fel modewill till sina pre-3.6-värden för ’mbcs’ respektive ’replace’.I annat fall används de nya standardinställningarna ”utf-8” och ”surrogatepass”.
detta kan också aktiveras vid körning medsys._enablelegacywindowsfsencoding()
.
tillgänglighet: Windows.
nytt i version 3.6: se PEP 529 för mer information.,
PYTHONLEGACYWINDOWSSTDIO
¶
om den är inställd på en icke-tom sträng använder du inte den nya konsolläsaren och brännaren. Detta innebär att Unicode-tecken kommer att kodas enligtDen aktiva konsolkoden sidan, snarare än att använda utf-8.
denna variabel ignoreras om standardströmmarna omdirigeras (till filesor-rör) i stället för att hänvisa till konsolbuffertar.
tillgänglighet: Windows.
nytt i version 3.6.,
PYTHONCOERCECLOCALE
¶
om det är inställt på värdet0
, orsakar Huvud Python kommandoradsapplikationatt hoppa över att tvinga de äldre ASCII-baserade C-och POSIX-lokaliserna till ett merkapabelt UTF-8-baserat alternativ.,annars den explicit ASCII-baserade POSIX
språk, då thePython CLI kommer att försöka konfigurera följande språk för kategorinLC_CTYPE
I den ordning som anges innan du laddar tolkentid:
-
C.UTF-8
-
C.utf8
-
UTF-8
om inställningen av en av dessa lokalkategorier lyckas, kommer miljövariabeln LC_CTYPE
också att ställas in i enlighet med den aktuella processenmiljö innan python-runtime initieras., Detta säkerställer att inaddition att bli sedd av både tolken själv och andra språk-awarecomponents körs i samma process (till exempel GNU readline
bibliotek), den uppdaterade inställning syns också i subprocesses (oavsett ofwhether eller inte de processer som kör en Python tolk), samt arcsin verksamheten att fråga miljön snarare än nuvarande C-språk(såsom Python egna locale.getdefaultlocale()
).,
genom att konfigurera en av dessa språk (antingen explicit eller via ovanståendeimplicit locale-tvång) aktiveras automatiskt felhanterarensurrogateescape
försys.stdin
ochsys.stdout
(sys.stderr
fortsätter att användabackslashreplace
som det gör i någon annan ort). Detta strömhanteringsbeteende kan beoverridden använda PYTHONIOENCODING
som vanligt.,
för felsökningssyfte kommer inställningenPYTHONCOERCECLOCALE=warn
att orsaka att varningsmeddelanden sänds ut påstderr
om antingen den lokala tvångsverksamheten aktiveras, eller om en lokal som skulle ha utlöst tvång fortfarande är aktiv när Python-runtime initieras.
Observera också att även när lokal tvång är inaktiverad, eller när den inte hittar en lämplig målplats, kommer PYTHONUTF8
fortfarande att aktivera bydefault i äldre ASCII-baserade lokaler., Båda funktionerna måste inaktiveras inorder för att tvinga tolken att använda ASCII
istället för UTF-8
forsystem interfaces.
tillgänglighet: * nix.
nytt i version 3.7: se PEP 538 för mer information.
PYTHONDEVMODE
¶
om denna miljövariabel är inställd på en icke-tom sträng, enablePython utvecklingsläge, införa ytterligare runtimechecks som är för dyra för att aktiveras som standard.
nytt i version 3.7.,
PYTHONUTF8
¶
om den är inställd på1
, aktiverar tolkens UTF-8-läge, därUTF-8
används som textkodning för systemgränssnitt, oavsett aktuell lokalinställning.
detta innebär att:
sys.getfilesystemencoding()
returnerar'UTF-8'
(localeencoding ignoreras).
locale.getpreferredencoding()
returnerar'UTF-8'
(localeencoding ignoreras, och funktionensdo_setlocale
parameter har noeffect).,F-8 som deras textkodning, medsurrogateescape
error handler aktiveras försys.stdin
ochsys.stdout
(sys.stderr
fortsätter att användabackslashreplace
som det gör i standard locale-aware-läget)li
som en följd av förändringarna i dessa API: er på lägre nivå uppvisar andra API: er på högre nivå också olika standardbeteenden:
kommandoradsargument, miljövariabler och filnamn avkodas till text med UTF-8-kodningen.,
os.fsdecode()
ochos.fsencode()
använd UTF-8-kodningen.
open()
,io.open()
ochcodecs.open()
använd UTF-8enkodningen som standard. Men de använder fortfarande den strikta felhanteraren bydefault så att försök att öppna en binär fil i textläge är sannoliktför att höja ett undantag snarare än att producera nonsensdata.,
Observera att standardflödesinställningarna i UTF-8-läge kan åsidosättas av PYTHONIOENCODING
(precis som de kan vara i standardlokalen-awaremode).
om den är inställd på0
körs tolken i sitt standardläge för lokalmedvetenhet.
Om du ställer in någon annan icke-tom sträng orsakar det ett fel vid tolkninginitiering.,
om den här miljövariabeln inte är inställd alls, defaults tolken att använda de aktuella lokalinställningarna, såvida inte den aktuella platsen identifieras som en äldre ASCII-baserad lokal(som beskrivs för PYTHONCOERCECLOCALE
), och lokal tvång är antingen inaktiverad eller misslyckas. I sådana äldre lokaler, tolken willdefault att aktivera UTF-8-läge om inte uttryckligen instrueras att inte göra det.
finns även som alternativet-X
utf8
.
nytt i version 3.7: se PEP 540 för mer information.
1.2.1., Felsökningslägesvariabler¶
Inställning av dessa variabler har endast en effekt i en felsökningsbyggnad av Python.
PYTHONTHREADDEBUG
¶
om uppsättningen, kommer Python skriva ut threading debug info.
behöver Python konfigurerad med--with-pydebug
byggalternativ.
PYTHONDUMPREFS
¶
om det är inställt, kommer Python att dumpa objekt och referensvärden som fortfarande lever efterskalv ner tolken.
behöver Python konfigurerad med--with-trace-refs
byggalternativ.