1.2. Miljøvariabler
disse miljøvariabler påvirker Pythons adfærd, de behandles før kommandolinjeafbrydere bortset fra-E eller-I. Det er almindeligt, at kommandolinjeafbrydere tilsidesætter miljøvariabler, hvor der er en konflikt.
PYTHONHOME
Skift placeringen af standard Python-biblioteker., Som standard, thelibraries er søgt iprefix/lib/pythonversion
ogexec_prefix/lib/pythonversion
, hvorprefix
ogexec_prefix
installation er afhængige af mapper, både defaultingto/usr/local
.
Når PYTHONHOME
er indstillet til en enkelt mappe, dens værdi replacesboth prefix
og exec_prefix
. For at angive forskellige værdierfor disse skal du indstille PYTHONHOME
til prefix:exec_prefix
.
PYTHONPATH
Forøg standardsøgestien for modulfiler., Formatet er det samme som shell ‘ sPATH
: et eller flere mappestienavne adskilt afos.pathsep
(f.eks.Ikke-eksisterende mapper ignoreres lydløst.
ud over normale mapper, individuelle PYTHONPATH
entrieskan henvise tilipipfiler, der indeholder rene Python-moduler (i enten kilde ellerkompileret form). Udvidelsesmoduler kan ikke importeres fra zipfiles.,
standard søgesti installation er afhængig, men normalt begynder medprefix/lib/pythonversion
(se PYTHONHOME
ovenfor). Det er altid vedlagt PYTHONPATH
.
en yderligere mappe vil blive indsat i søgestien foranPYTHONPATH
som beskrevet ovenfor underInterface muligheder. Søgestien kan manipuleres frainden for et Python-program som variablen sys.path
.
PYTHONPLATLIBDIR
Hvis dette er indstillet til en ikke-tom streng, tilsidesætter densys.platlibdir
værdi.,
nyt i version 3.9.
PYTHONSTARTUP
¶
Hvis dette er navnet på en læsbar fil, Python-kommandoer i denne fil areexecuted før den første prompt vises i interaktiv tilstand. Filen udføres i samme navneområde, hvor interaktive kommandoer udføres, så objekter, der er defineret eller importeret i det, kan bruges uden kvalifikation i den interaktive session. Du kan også ændre beder sys.ps1
ogsys.ps2
og krogen sys.__interactivehook__
i denne fil.,
hæver en revisionshændelsecpython.run_startup
medfilnavnet som argument, når det kaldes ved opstart.
PYTHONOPTIMIZE
Hvis dette er indstillet til en ikke-tom streng, svarer det til at angive-O
. Hvis det er indstillet til et heltal, svarer det til at angive-O
flere gange.PYTHONBREAKPOINT
Hvis dette er indstillet, navngiver det en, der kan konverteres ved hjælp af notation med stiplede stier., Modulet, der indeholder den konverterbare, importeres, og derefter køres den konverterbare ved standardimplementeringen afsys.breakpointhook()
, som i sig selv kaldes af indbygget
breakpoint()
. Hvis den ikke er indstillet eller indstillet til tomtstreng, svarer den til værdien ” pdb.set_trace”. Indstilling af dette tilstring “0”får standardimplementeringen afsys.breakpointhook()
til ikke at gøre andet end at vende tilbage med det samme.
nyt i version 3.7.,
PYTHONDEBUG
Hvis dette er indstillet til en ikke-tom streng, svarer det til at angive-d
. Hvis det er indstillet til et heltal, svarer det til at angive-d
flere gange.PYTHONOLDPARSER
Hvis dette er indstillet til en ikke-tom streng, skal du aktivere den traditionelle LL(1) – parser.
Se også indstillingen -X
oldparser
og Pep 617.
forældet siden version 3.9, vil blive fjernet i version 3.10.,
PYTHONINSPECT
Hvis dette er indstillet til en ikke-tom streng, svarer det til at angive-i
.
Denne variabel kan også ændres ved hjælp af Python-kode ved hjælp af os.environ
for at tvinge inspicere tilstanden på program-afslutning.
PYTHONUNBUFFERED
Hvis dette er indstillet til en ikke-tom streng, svarer det til at angive-u
.PYTHONVERBOSE
Hvis dette er indstillet til en ikke-tom streng, svarer det til at angive-v
., Hvis det er indstillet til et heltal, svarer det til at angive-v
flere gange.PYTHONCASEOK
Hvis dette er indstillet, ignorerer Python tilfældet iimport
udsagn. Thisonly virker på Windows og OS X.PYTHONDONTWRITEBYTECODE
¶
Hvis dette er sat til en ikke-tom streng, Python vil ikke forsøge at skrive .pyc
filer på import af source moduler. Dette svarer til at angive -B
mulighed.,
PYTHONPYCACHEPREFIX
¶
Hvis dette er indstillet, Python vil skrive .pyc
filer i et spejl bibliotek treeat denne vej, i stedet for i __pycache__
mapper i sourcetree. Dette svarer til at angive-X
pycache_prefix=PATH
mulighed.
nyt i version 3.8.
PYTHONHASHSEED
Hvis denne variabel ikke er indstillet eller indstillet tilrandom
, anvendes en tilfældig værdi til at se hasherne af str-og bytes-objekter.,
Hvis PYTHONHASHSEED
er indstillet til en heltalsværdi, bruges den som et fiseededseed til generering af hash() af de typer, der er dækket af hashrandomiseringen.
dens formål er at tillade gentagelig hashing, såsom for selftests for theinterpreter selv, eller at tillade en klynge af python processer til at dele hashvalues.
heltalet skal være et decimaltal i området . Angivelse af værdien 0 vil deaktivere hash randomisering.
nyt i version 3.2.3.,
PYTHONIOENCODING
¶
Hvis dette er indstillet, før du kører den tolk, der tilsidesætter kodning brug for stdin/stdout/stderr, i syntaksen encodingname:errorhandler
. Begge dele afencodingname
og:errorhandler
er valgfrie og har samme betydning som i str.encode()
.
for stderr ignoreres delen :errorhandler
; handleren vil altid være'backslashreplace'
.
ændret i version 3.4:encodingname
del er nu valgfri.
ændret i version 3.,6: i Windowsindo .s ignoreres den kodning, der er specificeret af denne variabel, for interactiveconsole-buffere, medmindre PYTHONLEGACYWINDOWSSTDIO
også er angivet.Filer og rør omdirigeret gennem standard streams påvirkes ikke.
PYTHONNOUSERSITE
¶
Hvis dette er indstillet, Python ikke tilføje user site-packages directory
til sys.path
.,
Se også
PEP 370 – Per-bruger site-pakker mappe
PYTHONUSERBASE
¶
Definerer user base directory
der er anvendt til afskrivning stien user site-packages directory
og Distutils installation stier forpython setup.py install --user
.
Se også
PEP 370 – Per-bruger site-pakker mappe
PYTHONEXECUTABLE
¶
Hvis dette miljø-variabel er sat, sys.argv
vil blive sat til itsvalue i stedet for den værdi, der fik gennem C runtime. Virker kun onMac Os..,
PYTHONWARNINGS
¶
Dette svarer til -W
option. Hvis den er indstillet til en commaseparated streng, det svarer til at angive -W
multipletimes, med filtre, senere i listen tage forrang for de earlierin listen.
Den enkleste indstillinger gælder en bestemt handling ubetinget at allwarnings, der udsendes af en proces (selv dem, der ellers ignoreres bydefault):
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 De Advarsler, Filter og Beskriver Advarsel Filtre til moredetails.,
PYTHONFAULTHANDLER
¶
Hvis dette miljø-variablen er sat til en ikke-tom streng,faulthandler.enable()
kaldes ved start: installere en handling forSIGSEGV
SIGFPE
SIGABRT
SIGBUS
ogSIGILL
signaler til at dumpe Python tilbagesporing. Dette svarer til-X
faulthandler
valgmulighed.
nyt i version 3.3.,
PYTHONTRACEMALLOC
hvis denne miljøvariabel er indstillet til en ikke-tom streng, skal du starte sporingpython-hukommelsesallokeringer ved hjælp aftracemalloc
– modulet. Værdien af variablen er det maksimale antal rammer, der er gemt i en sporing af atrace. For eksempel gemmerPYTHONTRACEMALLOC=1
kun den senesteframe. Setracemalloc.start()
for mere information.
nyt i version 3.4.
PYTHONPROFILEIMPORTTIME
Hvis denne miljøvariabel er indstillet til en ikke-tom streng, vil Python vise, hvor lang tid hver import tager., Dette svarer nøjagtigt til indstillingen-X importtime
på kommandolinjen.
nyt i version 3.7.
PYTHONASYNCIODEBUG
hvis denne miljøvariabel er indstillet til en ikke-tom streng, skal du aktivere debug-tilstand forasyncio
modul.
nyt i version 3.4.
PYTHONMALLOC
Indstil Python memory allocators og/eller installer fejlfindingskroge.,
Indstil familien af hukommelsesallokatorer, der bruges af Python:
Installer fejlfindingskroge:
-
debug
: installer fejlfindingskroge oven på standardhukommelsenallokatorer. -
malloc_debug
: samme sommalloc
, men også installere debug kroge. -
pymalloc_debug
: samme sompymalloc
, men også installere debug kroge.
se standardhukommelsesallokatorerne og funktionenPyMem_SetupDebugHooks()
(installer fejlfindingskroge på Pythonmemory-allokatorer).
ændret i version 3.,7: Tilføjet "default"
allocator.
nyt i version 3.6.
PYTHONMALLOCSTATS
¶
Hvis sat til, at en ikke-tom streng, Python vil udskrive statistikker af thepymalloc hukommelse fordelingsnøgle, hver gang en ny pymalloc objectarena er oprettet, og ved lukning.
Denne variabel ignoreres, hvis den PYTHONMALLOC
miljø variableis bruges til at tvinge malloc()
fordelingsnøgle af C-bibliotek, eller ifPython er konfigureret uden pymalloc
support.
ændret i version 3.,6: denne variabel kan nu også bruges på Python kompileret i udgivelse mode.It nu har ingen effekt, hvis den er indstillet til en tom streng.
PYTHONLEGACYWINDOWSFSENCODING
Hvis den er indstillet til en ikke-tom streng, vil standardfilsystemkodningen og fejltilstanden vende tilbage til henholdsvis deres præ-3.6-værdier af ‘mbcs’ og ‘erstat’.Ellers bruges de nye standard’ utf-8 ‘og’ surrogatepass’.
dette kan også aktiveres ved kørsel medsys._enablelegacywindowsfsencoding()
.
tilgængelighed: vinduer.
nyt i version 3.6: se PEP 529 For flere detaljer.,
PYTHONLEGACYWINDOWSSTDIO
Hvis den er indstillet til en ikke-tom streng, skal du ikke bruge den nye konsollæser andwrriter. Det betyder, at Unicode-tegn vil blive kodet i henhold tilden aktive konsolkodeside, snarere end at bruge utf-8.
denne variabel ignoreres, hvis standardstrømmene omdirigeres (til filereller rør) i stedet for at henvise til konsolbuffere.
tilgængelighed: vinduer.
nyt i version 3.6.,
PYTHONCOERCECLOCALE
¶
Hvis sat til den værdi 0
, der forårsager den største Python kommandolinjen applicationto springe tvinge arv ASCII-baseret C og POSIX-konventioner til at en morecapable UTF-8-baseret alternativ.,andet udtrykkeligt ASCII-baseret POSIX
locale, så thePython CLI vil forsøge at konfigurere følgende lokaliteter forLC_CTYPE
kategori i den rækkefølge, der vises, før du lægger den interpreterruntime:
-
C.UTF-8
-
C.utf8
-
UTF-8
Hvis indstillingen en af disse locale kategorier lykkes, så LC_CTYPE
miljø-variabel vil også være i overensstemmelse hermed i den nuværende processenvironment inden Python runtime er initialiseret., Dette sikrer, at inaddition at blive set af både tolk for sig selv og andre landestandard-awarecomponents kører i den samme proces (som GNU readline
bibliotek), den opdaterede indstilling er også set i subprocesses (uanset ofwhether eller ikke de processer, der kører en Python-fortolker), samt asin operationer, forespørgsel miljø snarere end den nuværende C-locale(såsom Python ‘ s egen locale.getdefaultlocale()
).,
Konfiguration af én af disse landestandarder (enten direkte eller via aboveimplicit landestandard tvang) automatisk aktiverer surrogateescape
fejl handler for sys.stdin
ogsys.stdout
(sys.stderr
fortsætter med at bruge backslashreplace
, som det gør i alle andre locale). Denne strømhåndteringsadfærd kan væreoverride ved hjælp af PYTHONIOENCODING
som sædvanlig.,
i forbindelse med fejlfinding, indstilling PYTHONCOERCECLOCALE=warn
vil causePython til at udsende advarsler om stderr
hvis enten landestandard coercionactivates, eller andet, hvis et sprog, som ville have udløst tvang isstill aktiv, når Python runtime er initialiseret.
bemærk Også, at selv når locale tvang er deaktiveret, eller når det ikke lykkes tofind et egnet mål landestandard, PYTHONUTF8
vil stadig aktivere bydefault i legacy-ASCII-baserede sprogindstillinger., Begge funktioner skal være deaktiveret for at tvinge tolken til at bruge ASCII
i stedet for UTF-8
system interfaces.
tilgængelighed: *ni..
nyt i version 3.7: se PEP 538 for flere detaljer.
PYTHONDEVMODE
Hvis denne miljøvariabel er indstillet til en ikke-tom streng, enablePython Development Mode, introducerer yderligere runtimechecks, der er for dyre til at blive aktiveret som standard.
nyt i version 3.7.,
PYTHONUTF8
¶
Hvis du vælger 1
, gør det muligt for tolken er UTF-8-tilstand, hvor UTF-8
isused som text encoding for system-grænseflader, uanset thecurrent landestandard.
Dette betyder at:
sys.getfilesystemencoding()
tilbage'UTF-8'
(den localeencoding er ignoreret).
locale.getpreferredencoding()
tilbage'UTF-8'
(den localeencoding ignoreres, og den funktiondo_setlocale
parameter har noeffect).,F-8 som deres tekst-kodning, medsurrogateescape
fejl, der handler aktiveret forsys.stdin
ogsys.stdout
(sys.stderr
fortsætter med at brugebackslashreplace
, som det gør i standard locale-klar-tilstand)
Som en konsekvens af ændringer i disse lavere niveau Api ‘er, andre højereniveau Api’ er også indeholde forskellige standard adfærd:
på kommandolinien, miljø-variabler og filnavne er decodedto tekst bruger UTF-8-kodning.,
os.fsdecode()
ogos.fsencode()
bruge UTF-8-kodning.
open()
io.open()
ogcodecs.open()
bruge UTF-8encoding som standard. De bruger dog stadig den strenge fejlbehandler ved default, så forsøg på at åbne en binær fil i teksttilstand sandsynligvis er at rejse en undtagelse snarere end at producere nonsensdata.,
Bemærk, at standard-strøm-indstillinger i UTF-8-tilstand kan ændres medPYTHONIOENCODING
(ligesom de kan være i standard locale-awaremode).
Hvis den er indstillet til 0
, kører tolken i sin standard locale-a .are-tilstand.
Indstilling af enhver anden ikke-tom streng forårsager en fejl under interpreterinitialisation.,
hvis denne miljøvariabel slet ikke er indstillet, bruger tolken ikke de aktuelle lokaleindstillinger, medmindre den aktuelle lokalitet identificeres som en ældre ASCII-baseret lokalitet(som beskrevet for PYTHONCOERCECLOCALE
), og lokal tvang er enten deaktiveret eller mislykkes. I sådanne ældre lokaliteter vil tolken default for at aktivere UTF-8-tilstand, medmindre det udtrykkeligt er instrueret om ikke at gøre det.
også tilgængelig som -X
utf8
mulighed.
nyt i version 3.7: se PEP 540 for flere detaljer.
1.2.1., Debug-mode variabler
Indstilling af disse variabler har kun en effekt i en debug build af Python.
PYTHONTHREADDEBUG
Hvis indstillet, vil Python udskrive threading debug info.
behov Python konfigureret med --with-pydebug
build mulighed.
PYTHONDUMPREFS
Hvis den er indstillet, vil Python dumpe objekter og referencetællinger, der stadig er i live, efter at have skåret ned tolken.
behov Python konfigureret med--with-trace-refs
build mulighed.