1.2. Variabilele de mediu¶
Aceste variabile de mediu influențează Python comportament, ele sunt processedbefore linia de comandă switch-uri, altele decât -E sau -I. se obișnuiește thatcommand-line switch-uri suprascrie variabile de mediu în cazul în care există aconflict.
PYTHONHOME
¶
modificați locația bibliotecilor Python standard., În mod implicit, thelibraries sunt căutate în prefix/lib/pythonversion
șiexec_prefix/lib/pythonversion
, unde prefix
șiexec_prefix
de instalare sunt dependente de directoare, atât defaultingto /usr/local
.
PYTHONHOME
este setat la un singur director, valoarea sa replacesboth prefix
și exec_prefix
. Pentru a specifica diferite unorvalori acestea, set PYTHONHOME
și prefix:exec_prefix
.
PYTHONPATH
¶
măriți calea de căutare implicită pentru fișierele modulului., Formatul este același ca shell PATH
: unul sau mai multe directoare de cai de acces separate prinos.pathsep
(de exemplu, două puncte pe Unix sau punct și virgulă pe Windows).Directoarele inexistente sunt ignorate în tăcere.
În plus față de normal directoare, individuale PYTHONPATH
entriesmay se referă la zipfiles conțin pur modulele Python (fie sursa orcompiled forma). Modulele de extensie nu pot fi importate din zipfiles.,
calea de căutare implicită depinde de instalare, dar în general începe cuprefix/lib/pythonversion
(vezi PYTHONHOME
de mai sus). Este întotdeauna anexat la PYTHONPATH
.
Un director suplimentare vor fi introduse în calea de căutare în fațaPYTHONPATH
așa cum este descris mai sus underInterface opțiuni. Calea de căutare poate fi manipulată de laîn cadrul unui program Python ca variabilă sys.path
.
PYTHONPLATLIBDIR
¶
dacă aceasta este setată la un șir ne-gol, aceasta înlocuiește valoarea sys.platlibdir
.,
nou în versiunea 3.9.
PYTHONSTARTUP
¶
Dacă acesta este numele de fișier care poate fi citit, Python comenzi în fișierul areexecuted înainte de prima este afișată în modul interactiv. Fișierul este executat în același spațiu de nume în care sunt executate comenzi interactive, astfel încât obiectele definite sau importate în el să poată fi utilizate fără calificare în sesiunea interactivă. Puteți schimba, de asemenea, instrucțiunile sys.ps1
șisys.ps2
și cârlig sys.__interactivehook__
în acest dosar.,
ridică un eveniment de audit cpython.run_startup
cu numele fișierului ca argument atunci când este chemat la pornire.
PYTHONOPTIMIZE
¶
Dacă aceasta este setată la un non-empty string este echivalent cu specificarea-O
opțiune. Dacă este setat la un număr întreg, este echivalent cu specificarea-O
de mai multe ori.
PYTHONBREAKPOINT
¶
dacă aceasta este setată, numește o notație apelabilă folosind calea punctată., La modulecontaining nevărsat vor fi importate și apoi răscumpărate va fi runby implicit punerea în aplicare a sys.breakpointhook()
care în sine este denumită de built-in breakpoint()
. Dacă nu este setat sau setat la golșir, este echivalent cu valoarea ” PPB.set_trace”. Setarea acestui lucru la ” 0 ” determină implementarea implicită a sys.breakpointhook()
să nu facă altceva decât să se întoarcă imediat.
nou în versiunea 3.7.,
PYTHONDEBUG
¶
dacă acesta este setat la un șir ne-gol, este echivalent cu specificarea opțiunii-d
. Dacă este setat la un număr întreg, este echivalent cu specificarea-d
de mai multe ori.
PYTHONOLDPARSER
¶
dacă acesta este setat pe un șir ne-gol, activați parser-ul tradițional LL(1).
a se Vedea, de asemenea, -X
oldparser
opțiune și PEP 617.
depreciat de la versiunea 3.9, va fi eliminat în versiunea 3.10.,
PYTHONINSPECT
¶
dacă acesta este setat la un șir ne-gol, este echivalent cu specificarea opțiunii-i
.
această variabilă poate fi modificată și prin codul Python folosind os.environ
pentru a forța modul inspecta la terminarea programului.
PYTHONUNBUFFERED
¶
dacă acesta este setat pe un șir ne-gol, este echivalent cu specificarea opțiunii-u
.
PYTHONVERBOSE
¶
dacă acesta este setat la un șir ne-gol, este echivalent cu specificarea opțiunii-v
., Dacă este setat la un număr întreg, este echivalent cu specificarea-v
de mai multe ori.
PYTHONCASEOK
¶
dacă acest lucru este setat, Python ignoră caz în import
declarații. Thisonly funcționează pe Windows și OS X.
PYTHONDONTWRITEBYTECODE
¶
Dacă aceasta este setată la un non-empty string, Python nu va încerca să scrie .pyc
fișiere pe importul de modulele de sursă. Aceasta este echivalentă cuspecificarea opțiunii -B
.,
PYTHONPYCACHEPREFIX
¶
Dacă aceasta este setată, Python va scrie .pyc
fișiere într-o oglindă director treeat această cale, în loc de în __pycache__
directoare în sourcetree. Aceasta este echivalentă cu specificarea opțiunii -X
pycache_prefix=PATH
.
nou în versiunea 3.8.
PYTHONHASHSEED
¶
Dacă această variabilă nu este setată sau setat la random
, o valoare aleatoare este folosit semințe de hash-uri de str și bytes obiecte.,
Dacă PYTHONHASHSEED
este setat la o valoare întreagă, este folosit ca un fixedseed pentru generarea hash() de tipuri acoperite de hashrandomization.
scopul Său este de a permite repetabile hashing, cum ar fi pentru selftests pentru theinterpreter în sine, sau de a permite unui grup de python procese pentru a partaja hashvalues.
întregul trebuie să fie un număr zecimal în interval . Specificând valoarea 0 va dezactiva randomizarea hash.
nou în versiunea 3.2.3.,
PYTHONIOENCODING
¶
Dacă aceasta este setată înainte de a rula interpret, acesta poate codare utilizate pentru stdin/stdout/stderr, în sintaxa encodingname:errorhandler
. * În encodingname
și :errorhandler
piese sunt opționale și avea același înțeles ca în str.encode()
.
Pentru stderr, :errorhandler
parte este ignorat; handler va fi întotdeauna'backslashreplace'
.
schimbat în versiunea 3.4: encodingname
parte este acum opțională.
schimbat în versiunea 3.,6: pe Windows, codificarea specificată de această variabilă este ignorată pentru tampoanele interactiveconsole, cu excepția cazului în care PYTHONLEGACYWINDOWSSTDIO
este de asemenea specificat.Fișierele și conductele redirecționate prin fluxurile standard nu sunt afectate.
PYTHONNOUSERSITE
¶
Dacă aceasta este setată, Python nu va adăuga user site-packages directory
și sys.path
.,
a se Vedea, de asemenea,
PEP 370 – Per utilizator site-pachete de director
PYTHONUSERBASE
¶
Definește user base directory
, care este folosit tocompute calea user site-packages directory
și Distutils căi de instalare pentrupython setup.py install --user
.
a se Vedea, de asemenea,
PEP 370 – Per utilizator site-pachete de director
PYTHONEXECUTABLE
¶
Dacă această variabilă de mediu este stabilit, sys.argv
va fi setat la itsvalue în loc de valoare obținut prin C runtime. Funcționează numai onMac OS X.,
PYTHONWARNINGS
¶
aceasta este echivalentă cu opțiunea -W
. Dacă este setat la un commaseparated șir, acesta este echivalent cu specificarea -W
multipletimes, cu filtre mai târziu în lista care prevalează asupra celor earlierin lista.
Cea mai simplă setări se aplică o anumită acțiune necondiționat să allwarnings emis de un proces (chiar și cei care sunt altfel ignorat 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
A se Vedea Avertismente Filtru și Descrie Avertizare Filtre pentru maidetalii.,
PYTHONFAULTHANDLER
¶
Dacă această variabilă de mediu este setat la un non-empty string,faulthandler.enable()
este numit la pornire: instalați un handler pentruSIGSEGV
, SIGFPE
, SIGABRT
, SIGBUS
șiSIGILL
semnale să arunce Python traceback. Acest lucru este echivalent cu-X
faulthandler
opțiune.
nou în versiunea 3.3.,
PYTHONTRACEMALLOC
¶
Dacă această variabilă de mediu este setat la un non-empty string, start tracingPython alocări de memorie folosind tracemalloc
module. Valoarea variabilei este numărul maxim de cadre stocate într-un traceback al unei curse. De exemplu, PYTHONTRACEMALLOC=1
stochează numai cele mai recentecadru. Consultați tracemalloc.start()
pentru mai multe informații.
nou în versiunea 3.4.
PYTHONPROFILEIMPORTTIME
¶
dacă această variabilă de mediu este setată pe un șir care nu este gol, Python va arăta cât durează fiecare import., Acest lucru este exact echivalent cu setarea-X importtime
pe linia de comandă.
nou în versiunea 3.7.
PYTHONASYNCIODEBUG
¶
Dacă această variabilă de mediu este setat la un non-empty string, permite thedebug modul de asyncio
module.
nou în versiunea 3.4.
PYTHONMALLOC
¶
setați alocatoarele de memorie Python și / sau instalați cârligele de depanare.,
Set din familia de memorie de alocare utilizate de Python:
Instalare depanare cârlige:
-
debug
: instalare depanare cârlige pe partea de sus a default memoryallocators. -
malloc_debug
: la fel camalloc
dar, de asemenea, instala debug cârlige. -
pymalloc_debug
: la fel capymalloc
dar, de asemenea, instala debug cârlige.
a se Vedea memoria implicită de repartitoare șiPyMem_SetupDebugHooks()
function (instalare depanare cârlige pe Pythonmemory repartitoare).
schimbat în versiunea 3.,7: adăugat"default"
alocator.
nou în versiunea 3.6.
PYTHONMALLOCSTATS
¶
Dacă este setat la un non-empty string, Python va imprima statistici de thepymalloc alocatorul de memorie de fiecare dată când un nou pymalloc objectarena este creat, și la închidere.
Această variabilă este ignorat dacă PYTHONMALLOC
mediu variableis folosit pentru a forța malloc()
repartitor de C bibliotecă, sau ifPython este configurat fără pymalloc
suport.
schimbat în versiunea 3.,6: Această variabilă poate fi acum utilizată și pe Python compilat în versiune mode.It acum nu are efect dacă este setat la un șir gol.
PYTHONLEGACYWINDOWSFSENCODING
¶
Dacă este setat la un non-empty string, sistemul de fișiere implicit codificarea și erori modewill reveni la pre-3.6 valorile de mbcs’ și „înlocuiți”, respectiv.În caz contrar, noile valori implicite „utf-8” și „surrogatepass” sunt utilizate.
Acest lucru poate fi, de asemenea, activat în timpul rulării cusys._enablelegacywindowsfsencoding()
.
disponibilitate: ferestre.
nou în versiunea 3.6: consultați PEP 529 pentru mai multe detalii.,
PYTHONLEGACYWINDOWSSTDIO
¶
dacă este setat la un șir de caractere non-gol, nu utilizează noul cititor consolă șiscriitor. Aceasta înseamnă că caracterele Unicode vor fi codificate în funcție depagina codului consolei active, mai degrabă decât utilizarea utf-8.
această variabilă este ignorată dacă fluxurile standard sunt redirecționate (către filesor pipes) în loc să se refere la tampoanele consolei.
disponibilitate: ferestre.
nou în versiunea 3.6.,
PYTHONCOERCECLOCALE
¶
Dacă este setat la valoarea 0
, cauzele principale Python în linia de comandă aplicatiei sări constrângerea moștenirea ASCII pe baza C și POSIX perfectă pentru o morecapable UTF-8 pe bază alternativă.,altfel în mod explicit, bazat pe ASCII POSIX
locale, apoi thePython CLI va încerca să configurați următoarele locații pentruLC_CTYPE
categoria enumerate în ordine înainte de încărcarea interpreterruntime:
-
C.UTF-8
-
C.utf8
-
UTF-8
Dacă unul dintre aceste setări regionale categorii reușește, atunci LC_CTYPE
variabila de mediu va fi de asemenea setat în mod corespunzător în actualul processenvironment înainte de Python runtime este inițializat., Acest lucru asigură că, în plus de a fi văzut de către interpret în sine și alte locale-awarecomponents care rulează în același proces (cum ar fi GNU readline
library), actualizat setare este, de asemenea, văzut în sub-procese (indiferent daca sunt sau nu aceste procese se execută un interpret Python), precum asin operațiuni de interogare mediului înconjurător, mai degrabă decât actualul C locale(cum ar fi Python proprii locale.getdefaultlocale()
).,
Configurarea una dintre aceste locații (fie explicit sau prin intermediul aboveimplicit locale constrângere) permite în mod automat surrogateescape
error handler for sys.stdin
șisys.stdout
(sys.stderr
continuă să folosească backslashreplace
ca în orice altă localizare). Acest comportament de manipulare flux poate beoverridden folosind PYTHONIOENCODING
ca de obicei.,
Pentru scopuri de depanare, setarea PYTHONCOERCECLOCALE=warn
va causePython de a emite mesaje de avertizare pe stderr
dacă oricare locale coercionactivates, sau altcineva, dacă o localizare care ar fi declanșat constrângere isstill activ atunci când Python runtime este inițializat.
de Asemenea, rețineți că, chiar și atunci când locale constrângere este dezactivat, sau atunci când nu reușește să găsim un obiectiv adecvat locale, PYTHONUTF8
va activa încă bydefault în moștenirea ASCII pe bază de calitate., Ambele caracteristici trebuie să fie dezactivate pentru a forța interpret pentru a utiliza ASCII
în loc de UTF-8
forsystem interfețe.
disponibilitate: * nix.
nou în versiunea 3.7: consultați PEP 538 pentru mai multe detalii.
PYTHONDEVMODE
¶
Dacă această variabilă de mediu este setat la un non-empty string, enablePython Modul de Dezvoltare, introducerea suplimentare runtimechecks că sunt prea scumpe pentru a fi activat în mod implicit.
nou în versiunea 3.7.,
PYTHONUTF8
¶
Dacă este setat la 1
, permite interpretului UTF-8 modul, în cazul în care UTF-8
este folosit ca text de codare pentru interfețele de sistem, indiferent de curente setarea locale.
Acest lucru înseamnă că:
sys.getfilesystemencoding()
livrare'UTF-8'
(cu localeencoding este ignorat).
locale.getpreferredencoding()
livrare'UTF-8'
(cu localeencoding este ignorat, și funcția de edo_setlocale
parametru are noeffect).,F-8 ca de codificare a textului, cusurrogateescape
error handler permis pentrusys.stdin
șisys.stdout
(sys.stderr
continuă să foloseascăbackslashreplace
cum se întâmplă în localizarea implicită conștient de modul)
Ca o consecință a schimbărilor în cele mai mici la nivel de Api-uri, alte higherlevel APIs prezintă, de asemenea, diferite default comportamente:
argumente în linia de Comandă, variabilele de mediu și nume de fișiere sunt decodedto text folosind codificarea UTF-8.,
os.fsdecode()
șios.fsencode()
utilizați codificarea UTF-8.
open()
,io.open()
șicodecs.open()
folosi UTF-8encoding în mod implicit. Cu toate acestea, ei încă mai folosesc strict de tratare a erorilor bydefault, astfel încât încercarea de a deschide un fișier binar în modul text este posibil ridica o excepție, mai degrabă decât producerea de prostii de date.,
Rețineți că standard flux setări în UTF-8 modul poate fi anulată prinPYTHONIOENCODING
(doar ca ele pot fi în mod implicit locale-awaremode).
dacă este setat la 0
, interpretul rulează în modul implicit conștient de localizare.
setarea oricărui alt șir ne-gol cauzează o eroare în timpul interpreterinitialization.,
Dacă această variabilă de mediu nu este setată la toate, atunci interpretul defaultsto folosind curent setări regionale, cu excepția cazului locale actuale isidentified ca o moștenire ASCII bazate pe localizare(după cum este descris pentru PYTHONCOERCECLOCALE
), și locale constrângere iseither cu handicap sau nu. În astfel de localizări, interpretul willdefault să permită UTF-8 modul, cu excepția cazului în instruiți să nu facă acest lucru.
de Asemenea, disponibil ca -X
utf8
opțiune.
nou în versiunea 3.7: consultați PEP 540 pentru mai multe detalii.
1.2.1., Variabilele Debug-mode¶
setarea acestor variabile are doar un efect într-o construcție de depanare Python.
PYTHONTHREADDEBUG
¶
dacă este setat, Python va imprima informații despre Depanare.
aveți nevoie de Python configurat cu opțiunea --with-pydebug
build.
PYTHONDUMPREFS
¶
Dacă este setat, Python va arunca obiecte și de referință contează încă în viață aftershutting pe interpret.
aveți nevoie de Python configurat cu opțiunea--with-trace-refs
build.