1.2. Omgevingsvariabelen¶
deze omgevingsvariabelen beà nvloeden het gedrag van Python, ze worden verwerkt voor de opdrachtregelschakelaars anders dan-E of-I. Het is gebruikelijk dat opdrachtregelschakelaars omgevingsvariabelen overschrijven waar er een conflict is.
PYTHONHOME
¶
Wijzig de locatie van de standaard Python-bibliotheken., Standaard worden de bibliotheken doorzocht in prefix/lib/pythonversion
enexec_prefix/lib/pythonversion
, waarbij prefix
enexec_prefix
installatieafhankelijke mappen zijn, beide standaard naar /usr/local
.
wanneer PYTHONHOME
is ingesteld op een enkele map, wordt de waarde vervangen door prefix
en exec_prefix
. Om hiervoor verschillende waarden te specificeren, stelt u PYTHONHOME
in op prefix:exec_prefix
.
PYTHONPATH
¶
vergroot het standaardzoekpad voor modulebestanden., Het formaat is hetzelfde als de shell ’s PATH
: een of meer mappadnamen gescheiden dooros.pathsep
(bijvoorbeeld dubbele punten op Unix of puntkomma ‘ s op Windows).Niet-bestaande mappen worden in stilte genegeerd.
naast normale mappen kunnen individuele PYTHONPATH
entriesmaar verwijzen naar zipfiles die pure Python modules bevatten (in bron of gecompileerde vorm). Uitbreidingsmodules kunnen niet worden geïmporteerd uit zipfiles.,
het standaard zoekpad is installatieafhankelijk, maar begint over het algemeen metprefix/lib/pythonversion
(zie PYTHONHOME
hierboven). Het wordt altijd toegevoegd aan PYTHONPATH
.
een extra map zal worden ingevoegd in het zoekpad voorPYTHONPATH
zoals hierboven beschreven onderinterface opties. Het zoekpad kan vanuit een Python-programma worden gemanipuleerd als de variabele .
PYTHONPLATLIBDIR
¶
als dit is ingesteld op een niet-lege tekenreeks, overschrijft het de waarde sys.platlibdir
.,
nieuw in versie 3.9.
PYTHONSTARTUP
¶
als dit de naam is van een leesbaar bestand, worden de Python-opdrachten in dat bestand uitgevoerd voordat de eerste prompt in interactieve modus wordt weergegeven. Het bestand wordt uitgevoerd in dezelfde namespace waar interactieve commando ‘ s worden uitgevoerd, zodat objecten die erin zijn gedefinieerd of geïmporteerd, zonder kwalificatie kunnen worden gebruikt in de interactieve sessie. U kunt ook de aanwijzingen sys.ps1
ensys.ps2
en de hook sys.__interactivehook__
in dit bestand wijzigen.,
roept een auditgebeurtenis op cpython.run_startup
met de bestandsnaam als argument wanneer deze wordt aangeroepen bij het opstarten.
PYTHONOPTIMIZE
¶
als dit is ingesteld op een niet-lege tekenreeks is het gelijk aan het specificeren van de optie-O
. Indien ingesteld op een geheel getal, is dit gelijk aan het meerdere keren opgeven van-O
.
PYTHONBREAKPOINT
¶
als dit is ingesteld, noemt het een aanroepbare met behulp van stippelpad notatie., De module met de aanroepbare zal worden geïmporteerd en dan zal de aanroepbare worden uitgevoerd door de standaard implementatie van sys.breakpointhook()
die zelf wordt aangeroepen door ingebouwde breakpoint()
. Indien niet ingesteld, of ingesteld op de emptystring, is het gelijk aan de waarde “pdb.set_trace”. Als u dit op de ring “0” zet, zal de standaard implementatie van sys.breakpointhook()
niets anders doen dan onmiddellijk terugkeren.
nieuw in versie 3.7.,
PYTHONDEBUG
¶
als dit is ingesteld op een niet-lege tekenreeks is het gelijk aan het specificeren van de optie-d
. Indien ingesteld op een geheel getal, is het gelijk aan het specificeren van-d
meerdere keren.
PYTHONOLDPARSER
¶
als dit is ingesteld op een niet-lege tekenreeks, activeer dan de traditionele ll(1) parser.
zie ook de optie -X
oldparser
en PEP 617.
verouderd sinds versie 3.9, zal worden verwijderd in versie 3.10.,
PYTHONINSPECT
¶
als dit is ingesteld op een niet-lege tekenreeks is het gelijk aan het specificeren van de optie-i
.
deze variabele kan ook worden gewijzigd door Python-code met os.environ
om de inspecteermodus te forceren bij het beëindigen van het programma.
PYTHONUNBUFFERED
¶
als dit is ingesteld op een niet-lege tekenreeks is het gelijk aan het specificeren van de optie-u
.
PYTHONVERBOSE
¶
als dit is ingesteld op een niet-lege tekenreeks is het gelijk aan het specificeren van de optie-v
., Indien ingesteld op een geheel getal, is dit gelijk aan het meerdere keren opgeven van-v
.
PYTHONCASEOK
¶
als dit is ingesteld, negeert Python case in import
statements. Dit werkt op Windows en OS X.
PYTHONDONTWRITEBYTECODE
¶
als dit is ingesteld op een niet-lege tekenreeks, zal Python niet proberen .pyc
bestanden te schrijven bij het importeren van bronmodules. Dit is gelijk aan het specificeren van de -B
optie.,
PYTHONPYCACHEPREFIX
¶
als dit is ingesteld, zal Python .pyc
bestanden schrijven in een mirrormap, in plaats van in __pycache__
mappen binnen de bronboom. Dit komt overeen met het specificeren van de optie -X
pycache_prefix=PATH
.
nieuw in versie 3.8.
PYTHONHASHSEED
¶
als deze variabele niet is ingesteld of is ingesteld op random
, wordt een willekeurige waarde gebruikt om de hashes van STR en bytes objecten te zaad.,
als PYTHONHASHSEED
is ingesteld op een integer waarde, wordt het gebruikt als een vaste waarde voor het genereren van de hash() van de typen die onder de hashrandomisatie vallen.
Het doel is om herhaalbare hashing toe te staan, zoals voor zelftesten voor de interpretator zelf, of om een cluster van python processen toe te staan om hashwaarden te delen.
het gehele getal moet een decimaal getal in het bereik zijn . Specifyingthe waarde 0 zal hash randomisatie uitschakelen.
nieuw in versie 3.2.3.,
PYTHONIOENCODING
¶
als dit is ingesteld voordat de interpreter wordt uitgevoerd, overschrijft het de codering die wordt gebruikt voor stdin/stdout/stderr, in de syntaxis encodingname:errorhandler
. Zowel deencodingname
en de:errorhandler
delen zijn optioneel en hebben dezelfde betekenis als instr.encode()
.
voor stderr wordt het :errorhandler
gedeelte genegeerd; de handler zal altijd'backslashreplace'
zijn.
gewijzigd in versie 3.4: Hetencodingname
deel is nu optioneel.
gewijzigd in versie 3.,6: in Windows wordt de door deze variabele gespecificeerde codering genegeerd voor interactiveconsole-buffers, tenzij PYTHONLEGACYWINDOWSSTDIO
ook is opgegeven.Bestanden en leidingen omgeleid door de standaard streams worden niet beïnvloed.
PYTHONNOUSERSITE
¶
als dit is ingesteld, zal Python de user site-packages directory
niet toevoegen aan .,
zie ook
PEP 370 – per gebruiker site-packages directory
PYTHONUSERBASE
¶
definieert de user base directory
, die wordt gebruikt om het pad van deuser site-packages directory
te berekenen en Distutils installatiepaden voorpython setup.py install --user
.
zie ook
PEP 370-per user site-packages directory
PYTHONEXECUTABLE
¶
als deze omgevingsvariabele is ingesteld, zal sys.argv
worden ingesteld op de waarde ervan in plaats van de waarde die door de C-runtime is verkregen. Werkt alleen op Mac OS X.,
PYTHONWARNINGS
¶
Dit is gelijk aan de optie -W
. Indien ingesteld op een tekenreeks met komma ‘ s, is dit gelijk aan het specificeren van -W
multipletimes, met filters later in de lijst die voorrang hebben op die eerder in de lijst.
De eenvoudigste instellingen passen een bepaalde actie onvoorwaardelijk toe op alle waarschuwingen die door een proces worden uitgezonden (zelfs die welke anders door Default worden genegeerd):
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
zie het Waarschuwingsfilter en de beschrijving van Waarschuwingsfilters voor meer details.,
PYTHONFAULTHANDLER
¶
als deze omgevingsvariabele is ingesteld op een niet-lege tekenreeks, wordtfaulthandler.enable()
aangeroepen bij het opstarten: installeer een handler voorSIGSEGV
, SIGFPE
, SIGABRT
, SIGBUS
enSIGILL
signalen om de python traceback te dumpen. Dit is gelijk aan-X
faulthandler
optie.
nieuw in versie 3.3.,
PYTHONTRACEMALLOC
¶
als deze omgevingsvariabele is ingesteld op een niet-lege tekenreeks, start tracingPython geheugen toewijzingen met behulp van de tracemalloc
module. De waarde van de variabele is het maximum aantal frames dat is opgeslagen in een traceback van atrace. Bijvoorbeeld, PYTHONTRACEMALLOC=1
slaat alleen het meest recente frame op. Zie de tracemalloc.start()
voor meer informatie.
nieuw in versie 3.4.
PYTHONPROFILEIMPORTTIME
¶
als deze omgevingsvariabele is ingesteld op een niet-lege tekenreeks, zal Python laten zien hoe lang elke import duurt., Dit is precies gelijk aan het instellen van-X importtime
op de commandoregel.
nieuw in versie 3.7.
PYTHONASYNCIODEBUG
¶
als deze omgevingsvariabele is ingesteld op een niet-lege tekenreeks, activeer dan de debugmodus van de asyncio
module.
nieuw in versie 3.4.
PYTHONMALLOC
¶
Stel de Python-geheugenallocatoren in en/of installeer debughaken.,
Stel de familie geheugenallocatoren in die gebruikt worden door Python:
Debughaken installeren:
-
debug
: debughaken installeren bovenop de standaard memoryallocators. -
malloc_debug
: hetzelfde alsmalloc
maar installeer ook debug hooks. -
pymalloc_debug
: hetzelfde alspymalloc
maar installeer ook debug hooks.
zie de standaard geheugenallocators en dePyMem_SetupDebugHooks()
functie (installeer debug hooks op Pythonmemory allocators).
gewijzigd in versie 3.,7: de "default"
allocator toegevoegd.
nieuw in versie 3.6.
PYTHONMALLOCSTATS
¶
indien ingesteld op een niet-lege tekenreeks, zal Python statistieken van de pymalloc-geheugenallocator afdrukken telkens wanneer een nieuwe pymalloc-objectarena wordt gemaakt, en bij afsluiten.
deze variabele wordt genegeerd als dePYTHONMALLOC
omgevingsvariablewordt gebruikt om demalloc()
allocator van de C-bibliotheek te forceren, of ifPython is geconfigureerd zonderpymalloc
ondersteuning.
gewijzigd in versie 3.,6: deze variabele kan nu ook worden gebruikt op Python gecompileerd in release mode.It heeft nu geen effect als het op een lege tekenreeks is ingesteld.
PYTHONLEGACYWINDOWSFSENCODING
¶
indien ingesteld op een niet-lege tekenreeks, zullen de standaardcodering van het bestandssysteem en de modus fouten terugkeren naar hun pre-3.6 waarden van respectievelijk ‘mbcs’ en ‘replace’.Anders worden de nieuwe standaardwaarden’ utf-8′ en ‘surrogatepass’ gebruikt.
Dit kan ook worden ingeschakeld tijdens runtime metsys._enablelegacywindowsfsencoding()
.
beschikbaarheid: Windows.
nieuw in versie 3.6: zie PEP 529 voor meer details.,
PYTHONLEGACYWINDOWSSTDIO
¶
indien ingesteld op een niet-lege tekenreeks, wordt de nieuwe consolelezer en-Writer niet gebruikt. Dit betekent dat Unicode-tekens worden gecodeerd volgens de actieve console-codepagina, in plaats van utf-8 te gebruiken.
deze variabele wordt genegeerd als de standaard streams worden omgeleid (naar filesor pipes) in plaats van te verwijzen naar console buffers.
beschikbaarheid: Windows.
nieuw in versie 3.6.,
PYTHONCOERCECLOCALE
¶
indien ingesteld op de waarde 0
, zorgt ervoor dat de belangrijkste Python-opdrachtregeltoepassing de oudere ASCII-gebaseerde C-en POSIX-locales overslaat naar een meer geschikt UTF-8-gebaseerd alternatief.,anders uitdrukkelijk ASCII-basis POSIX
landinstelling, dan thePython CLI probeert te configureren de volgende locaties voor hetLC_CTYPE
categorie in de volgorde op de lijst voor het laden van de interpreterruntime:
-
C.UTF-8
-
C.utf8
-
UTF-8
Als een van deze landinstelling categorieën slaagt, wordt de LC_CTYPE
omgevings variabele zal ook worden ingesteld in de huidige processenvironment voor de Python runtime is geïnitialiseerd., Dit zorgt ervoor dat naast het feit dat zowel de interpreter zelf als andere lokale-awarecomponenten in hetzelfde proces worden gezien (zoals de GNU readline
bibliotheek), de bijgewerkte instelling ook wordt gezien in subprocessen (ongeacht of deze processen een Python-interpreter draaien), evenals asin-bewerkingen die de omgeving bevragen in plaats van de huidige C-locale(zoals Python ‘ s eigen locale.getdefaultlocale()
).,
het configureren van een van deze locales (expliciet of via de bovenstaande implicit locale coercion) schakelt automatisch de surrogateescape
error handler voor sys.stdin
ensys.stdout
(sys.stderr
blijft backslashreplace
zoals in elke andere landinstelling). Dit streamafhandelingsgedrag kan worden uitgeschakeld met PYTHONIOENCODING
zoals gewoonlijk.,
voor debugdoeleinden zal het instellen van PYTHONCOERCECLOCALE=warn
ervoor zorgen datepython waarschuwingsberichten uitzendt op stderr
als de lokale coercionactiveert, of als een lokale die coercion zou hebben geactiveerd nog steeds actief is wanneer de Python-runtime wordt geïnitialiseerd.
merk ook op dat zelfs wanneer lokale coercion is uitgeschakeld, of wanneer het er niet in slaagt een geschikte doellocatie te vinden, PYTHONUTF8
nog steeds bydefault activeert in oudere ASCII-gebaseerde locales., Beide functies moeten uitgeschakeld zijn om de interpreter te dwingen ASCII
te gebruiken in plaats van UTF-8
voor systeeminterfaces.
beschikbaarheid: *nix.
nieuw in versie 3.7: zie PEP 538 voor meer details.
PYTHONDEVMODE
¶
als deze omgevingsvariabele is ingesteld op een niet-lege tekenreeks, wordt Python-ontwikkelingsmodus ingeschakeld, waarbij extra runtimechecks worden geïntroduceerd die te duur zijn om standaard te worden ingeschakeld.
nieuw in versie 3.7.,
PYTHONUTF8
¶
indien ingesteld op 1
, schakelt de UTF-8-modus van de interpreter in, waarbij UTF-8
wordt gebruikt als de tekstcodering voor systeeminterfaces, ongeacht de huidige lokale instelling.
Dit betekent dat:
sys.getfilesystemencoding()
geeft'UTF-8'
(de localeencodering wordt genegeerd).
locale.getpreferredencoding()
geeft'UTF-8'
(de localeencodering wordt genegeerd, en de parameterdo_setlocale
heeft geen effect).,F-8 als hun tekst codering, met desurrogateescape
error handler wordt ingeschakeld voorsys.stdin
ensys.stdout
(sys.stderr
blijft gebruikenbackslashreplace
als het niet in de standaard landinstelling-bewust-modus)
Als gevolg van de veranderingen op een lager niveau-Api ‘s, andere higherlevel-Api’ s vertonen ook verschillende standaard gedrag:
Commando regel argumenten, omgevingsvariabelen en de bestandsnamen zijn decodedto tekst met de UTF-8-codering.,
os.fsdecode()
enos.fsencode()
gebruik de UTF-8-codering.
open()
,io.open()
, encodecs.open()
gebruiken standaard de UTF-8encodering. Echter, ze nog steeds gebruik maken van de strikte fout handler bydefault, zodat het proberen om een binair bestand te openen in de tekst mode is waarschijnlijk om een uitzondering te verhogen in plaats van het produceren van onzin gegevens.,
merk op dat de standaard stream-instellingen in UTF-8-modus kunnen worden overschreven doorPYTHONIOENCODING
(net zoals ze in de standaard locale-awaremode kunnen staan).
indien ingesteld op 0
, draait de interpreter in zijn standaard locale-aware modus.
Het instellen van een andere niet-lege tekenreeks veroorzaakt een fout tijdens interpreteringsinitialisatie.,
als deze omgevingsvariabele helemaal niet is ingesteld, dan gebruikt de interpreter de huidige locale-instellingen, tenzij de huidige locale is geïdentificeerd als een oude ASCII-gebaseerde locale(zoals beschreven voor PYTHONCOERCECLOCALE
), en lokale dwang is ofwel uitgeschakeld of faalt. In dergelijke legacy locales zal de interpreter de UTF-8 modus inschakelen, tenzij expliciet geïnstrueerd om dit niet te doen.
ook beschikbaar als de optie -X
utf8
.
nieuw in versie 3.7: zie PEP 540 voor meer details.
1.2.1., Debug-mode variabelen¶
Het instellen van deze variabelen heeft alleen een effect in een debug build van Python.
PYTHONTHREADDEBUG
¶
indien ingesteld, zal Python debuginformatie voor threading afdrukken.
heeft Python geconfigureerd met de --with-pydebug
build optie.
PYTHONDUMPREFS
¶
indien ingesteld, zal Python objecten en referentietellingen die nog in leven zijn na het inlezen van de interpreter dumpen.
heeft Python geconfigureerd met de--with-trace-refs
build optie.