1. Befehlszeile und Umgebung¶
Der CPython-Interpreter analysiert die Befehlszeile und die Umgebung auf verschiedene Einstellungen.
CPython Implementierungsdetail: Die Befehlszeilenschemata anderer Implementierungen können abweichen. Weitere Ressourcen finden Sie unter Alternative Implementierungen.
1.1. Befehlszeile¶
Beim Aufruf von Python können Sie eine der folgenden Optionen angeben.
python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] [args]
Der häufigste Anwendungsfall ist natürlich ein einfacher Aufruf eines Skripts.
python myscript.py
1.1.1. Schnittstellenoptionen¶
Die Schnittstelle des Interpreters ähnelt der der UNIX-Shell, bietet aber einige zusätzliche Aufrufmethoden.
Wenn der Interpreter mit einer verbundenen Standardeingabe (TTY-Gerät) aufgerufen wird, fordert er Befehle an und führt sie aus, bis ein EOF (End-of-File-Zeichen, das Sie unter UNIX mit Ctrl-D oder unter Windows mit Ctrl-Z, Enter erzeugen können) gelesen wird. Weitere Informationen zum interaktiven Modus finden Sie unter Interaktiver Modus.
Wenn der Interpreter mit einem Dateinamen als Argument oder mit einer Datei als Standardeingabe aufgerufen wird, liest und führt er ein Skript aus dieser Datei aus.
Wenn der Interpreter mit einem Verzeichnisnamen als Argument aufgerufen wird, liest und führt er ein entsprechend benanntes Skript aus diesem Verzeichnis aus.
Wenn der Interpreter mit
-c Befehlaufgerufen wird, führt er die als Befehl angegebenen Python-Anweisungen aus. Hier kann Befehl mehrere durch Zeilenumbrüche getrennte Anweisungen enthalten. Führende Leerzeichen sind in Python-Anweisungen wichtig!Wenn der Interpreter mit
-m Modulnameaufgerufen wird, wird das angegebene Modul im Python-Modulpfad gesucht und als Skript ausgeführt.
Im nicht-interaktiven Modus wird die gesamte Eingabe geparst, bevor sie ausgeführt wird.
Eine Schnittstellenoption beendet die Liste der vom Interpreter verarbeiteten Optionen. Alle nachfolgenden Argumente landen in sys.argv – beachten Sie, dass das erste Element, der Index Null (sys.argv[0]), eine Zeichenkette ist, die die Quelle des Programms widerspiegelt.
- -c <Befehl>¶
Führt den Python-Code in Befehl aus. Befehl kann eine oder mehrere durch Zeilenumbrüche getrennte Anweisungen sein, mit wichtigen führenden Leerzeichen wie im normalen Modulcode.
Wenn diese Option angegeben wird, ist das erste Element von
sys.argv"-c"und das aktuelle Verzeichnis wird am Anfang vonsys.pathhinzugefügt (wodurch Module in diesem Verzeichnis als Top-Level-Module importiert werden können).Löst ein Audit-Ereignis
cpython.run_commandmit dem Argumentcommandaus.Geändert in Version 3.14: Befehl wird vor der Ausführung automatisch eingerückt.
- -m <Modulname>¶
Durchsucht
sys.pathnach dem benannten Modul und führt dessen Inhalt als das Modul__main__aus.Da das Argument ein Modulname ist, dürfen Sie keine Dateiendung (
.py) angeben. Der Modulname sollte ein gültiger absoluter Python-Modulname sein, aber die Implementierung erzwingt dies möglicherweise nicht immer (z. B. kann sie Ihnen erlauben, einen Namen zu verwenden, der einen Bindestrich enthält).Paketnamen (einschließlich Namespace-Pakete) sind ebenfalls zulässig. Wenn ein Paketname anstelle eines normalen Moduls angegeben wird, führt der Interpreter
<pkg>.__main__als Hauptmodul aus. Dieses Verhalten ist bewusst ähnlich der Behandlung von Verzeichnissen und Zip-Dateien, die dem Interpreter als Skript-Argument übergeben werden.Hinweis
Diese Option kann nicht mit integrierten Modulen und Erweiterungsmodulen verwendet werden, die in C geschrieben sind, da diese keine Python-Moduldateien haben. Sie kann jedoch auch für vorkompilierte Module verwendet werden, selbst wenn die ursprüngliche Quelldatei nicht verfügbar ist.
Wenn diese Option angegeben wird, ist das erste Element von
sys.argvder vollständige Pfad zur Moduldatei (während das Modul gesucht wird, wird das erste Element auf"-m"gesetzt). Wie bei der-c-Option wird das aktuelle Verzeichnis am Anfang vonsys.pathhinzugefügt.Die Option
-Ikann verwendet werden, um das Skript im isolierten Modus auszuführen, wobeisys.pathweder das aktuelle Verzeichnis noch das Verzeichnis der Benutzer-Site-Packages enthält. AllePYTHON*-Umgebungsvariablen werden ebenfalls ignoriert.Viele Standardbibliotheksmodule enthalten Code, der bei ihrer Ausführung als Skript aufgerufen wird. Ein Beispiel ist das Modul
timeit.python -m timeit -s "setup here" "benchmarked code here" python -m timeit -h # for details
Löst ein Audit-Ereignis
cpython.run_modulemit dem Argumentmodule-nameaus.Siehe auch
runpy.run_module()Gleiche Funktionalität direkt für Python-Code verfügbar.
PEP 338 – Ausführen von Modulen als Skripte
Geändert in Version 3.1: Geben Sie den Paketnamen an, um ein
__main__-Untermodul auszuführen.Geändert in Version 3.4: Namespace-Pakete werden ebenfalls unterstützt.
- -
Liest Befehle von der Standardeingabe (
sys.stdin). Wenn die Standardeingabe ein Terminal ist, wird-iimpliziert.Wenn diese Option angegeben wird, ist das erste Element von
sys.argv"-"und das aktuelle Verzeichnis wird am Anfang vonsys.pathhinzugefügt.Löst ein Audit-Ereignis
cpython.run_stdinohne Argumente aus.
- <Skript>
Führt den Python-Code aus, der in Skript enthalten ist, was ein Dateisystempfad (absolut oder relativ) sein muss, der entweder auf eine Python-Datei, ein Verzeichnis mit einer
__main__.py-Datei oder eine Zip-Datei mit einer__main__.py-Datei verweist.Wenn diese Option angegeben wird, ist das erste Element von
sys.argvder auf der Befehlszeile angegebene Skriptname.Wenn der Skriptname direkt auf eine Python-Datei verweist, wird das Verzeichnis, das diese Datei enthält, am Anfang von
sys.pathhinzugefügt, und die Datei wird als Modul__main__ausgeführt.Wenn der Skriptname auf ein Verzeichnis oder eine Zip-Datei verweist, wird der Skriptname am Anfang von
sys.pathhinzugefügt und die Datei__main__.pyan diesem Ort wird als Modul__main__ausgeführt.Die Option
-Ikann verwendet werden, um das Skript im isolierten Modus auszuführen, wobeisys.pathweder das Verzeichnis des Skripts noch das Verzeichnis der Benutzer-Site-Packages enthält. AllePYTHON*-Umgebungsvariablen werden ebenfalls ignoriert.Löst ein Audit-Ereignis
cpython.run_filemit dem Argumentfilenameaus.Siehe auch
runpy.run_path()Gleiche Funktionalität direkt für Python-Code verfügbar.
Wenn keine Schnittstellenoption angegeben wird, wird -i impliziert, sys.argv[0] ist eine leere Zeichenkette ("") und das aktuelle Verzeichnis wird am Anfang von sys.path hinzugefügt. Außerdem werden Tab-Vervollständigung und Verlaufbearbeitung automatisch aktiviert, sofern auf Ihrer Plattform verfügbar (siehe Readline-Konfiguration).
Siehe auch
Geändert in Version 3.4: Automatische Aktivierung von Tab-Vervollständigung und Verlaufbearbeitung.
1.1.2. Allgemeine Optionen¶
- -?¶
- -h¶
- --help¶
Gibt eine kurze Beschreibung aller Befehlszeilenoptionen und der entsprechenden Umgebungsvariablen aus und beendet sich dann.
- --help-env¶
Gibt eine kurze Beschreibung Python-spezifischer Umgebungsvariablen aus und beendet sich dann.
Hinzugefügt in Version 3.11.
- --help-xoptions¶
Gibt eine Beschreibung implementierungsspezifischer
-X-Optionen aus und beendet sich dann.Hinzugefügt in Version 3.11.
- --help-all¶
Gibt die vollständigen Nutzungsinformationen aus und beendet sich dann.
Hinzugefügt in Version 3.11.
- -V¶
- --version¶
Gibt die Python-Versionsnummer aus und beendet sich dann. Ein Beispiel für die Ausgabe könnte sein:
Python 3.8.0b2+
Wenn zweimal angegeben, werden weitere Informationen zum Build ausgegeben, wie z. B.:
Python 3.8.0b2+ (3.8:0c076caaa8, Apr 20 2019, 21:55:00) [GCC 6.2.0 20161005]
Hinzugefügt in Version 3.6: Die Option
-VV.
1.1.3. Verschiedene Optionen¶
- -b¶
Gibt eine Warnung aus, wenn
bytesoderbytearrayohne Angabe einer Kodierung instrkonvertiert wird oder wennbytesoderbytearraymitstroderbytesmitintverglichen wird. Gibt einen Fehler aus, wenn die Option zweimal angegeben wird (-bb).
- -B¶
Wenn angegeben, versucht Python beim Importieren von Quellmodulen nicht,
.pyc-Dateien zu schreiben. Siehe auchPYTHONDONTWRITEBYTECODE.
- --check-hash-based-pycs default|always|never¶
Steuert das Validierungsverhalten von hash-basierten
.pyc-Dateien. Siehe Ungültigkeitsprüfung von Bytecode-Cache-Dateien (.pyc). Wenn aufdefaultgesetzt, werden geprüfte und ungeprüfte hash-basierte Bytecode-Cache-Dateien gemäß ihren Standardsemantik geprüft. Wenn aufalwaysgesetzt, werden alle hash-basierten.pyc-Dateien, ob geprüft oder ungeprüft, gegen ihre entsprechenden Quelldateien validiert. Wenn aufnevergesetzt, werden hash-basierte.pyc-Dateien nicht gegen ihre entsprechenden Quelldateien validiert.Die Semantik von timestamp-basierten
.pyc-Dateien wird von dieser Option nicht beeinflusst.
- -d¶
Aktiviert die Debug-Ausgabe des Parsers (nur für Experten). Siehe auch die Umgebungsvariable
PYTHONDEBUG.Diese Option erfordert eine Debug-Build von Python, andernfalls wird sie ignoriert.
- -E¶
Ignoriert alle gesetzten
PYTHON*-Umgebungsvariablen, z. B.PYTHONPATHundPYTHONHOME.
- -i¶
Gibt nach der Ausführung den interaktiven Modus ein.
Die Verwendung der Option
-itritt in den interaktiven Modus unter folgenden Umständen ein:Wenn ein Skript als erstes Argument übergeben wird.
Wenn die Option
-cverwendet wird.Wenn die Option
-mverwendet wird.
Der interaktive Modus wird gestartet, auch wenn
sys.stdinkein Terminal zu sein scheint. Die DateiPYTHONSTARTUPwird nicht gelesen.Dies kann nützlich sein, um globale Variablen oder eine Stapelverfolgung zu inspizieren, wenn ein Skript eine Ausnahme auslöst. Siehe auch
PYTHONINSPECT.
- -I¶
Führt Python im isolierten Modus aus. Dies impliziert auch die Optionen
-E,-Pund-s.Im isolierten Modus enthält
sys.pathweder das Verzeichnis des Skripts noch das Verzeichnis der Benutzer-Site-Packages. AllePYTHON*-Umgebungsvariablen werden ebenfalls ignoriert. Es können weitere Einschränkungen auferlegt werden, um zu verhindern, dass der Benutzer bösartigen Code einschleust.Hinzugefügt in Version 3.4.
- -O¶
Entfernt assert-Anweisungen und jeden Code, der vom Wert von
__debug__abhängig ist. Erweitert den Dateinamen für kompilierte (Bytecode-)Dateien, indem.opt-1vor der.pyc-Erweiterung hinzugefügt wird (siehe PEP 488). Siehe auchPYTHONOPTIMIZE.Geändert in Version 3.5: Ändert
.pyc-Dateinamen gemäß PEP 488.
- -OO¶
Macht dasselbe wie
-Ound verwirft zusätzlich Docstrings. Erweitert den Dateinamen für kompilierte (Bytecode-)Dateien, indem.opt-2vor der.pyc-Erweiterung hinzugefügt wird (siehe PEP 488).Geändert in Version 3.5: Ändert
.pyc-Dateinamen gemäß PEP 488.
- -P¶
Fügt keinen potenziell unsicheren Pfad am Anfang von
sys.pathein.python -m modulBefehlszeile: Fügt nicht das aktuelle Arbeitsverzeichnis hinzu.python skript.pyBefehlszeile: Fügt nicht das Verzeichnis des Skripts hinzu. Wenn es sich um einen symbolischen Link handelt, werden symbolische Links aufgelöst.python -c codeundpython(REPL) Befehlszeilen: Fügt keinen leeren String hinzu, was das aktuelle Arbeitsverzeichnis bedeutet.
Siehe auch die Umgebungsvariable
PYTHONSAFEPATHund die Optionen-Eund-I(isoliert).Hinzugefügt in Version 3.11.
- -q¶
Unterdrückt die Anzeige der Copyright- und Versionsmeldungen, auch im interaktiven Modus.
Hinzugefügt in Version 3.2.
- -R¶
Aktiviert die Hash-Randomisierung. Diese Option hat nur dann einen Effekt, wenn die Umgebungsvariable
PYTHONHASHSEEDauf etwas anderes alsrandomgesetzt ist, da die Hash-Randomisierung standardmäßig aktiviert ist.Auf früheren Python-Versionen aktiviert diese Option die Hash-Randomisierung, so dass die
__hash__()-Werte von Zeichenketten- und Bytes-Objekten mit einem unvorhersehbaren Zufallswert "gesalzen" werden. Obwohl sie innerhalb eines einzelnen Python-Prozesses konstant bleiben, sind sie nicht zwischen wiederholten Aufrufen von Python vorhersagbar.Die Hash-Randomisierung soll Schutz vor Denial-of-Service-Angriffen bieten, die durch sorgfältig ausgewählte Eingaben verursacht werden und die schlechteste Fallleistung einer Wörterbuchkonstruktion, O(n2) Komplexität, ausnutzen. Details finden Sie unter http://ocert.org/advisories/ocert-2011-003.html.
PYTHONHASHSEEDermöglicht es Ihnen, einen festen Wert für das Hash-Seed-Geheimnis festzulegen.Hinzugefügt in Version 3.2.3.
Geändert in Version 3.7: Die Option wird nicht mehr ignoriert.
- -s¶
Fügt das Verzeichnis
Benutzer-Site-Packagesnicht zusys.pathhinzu.Siehe auch
PYTHONNOUSERSITE.Siehe auch
PEP 370 – Benutzer-spezifisches Site-Packages-Verzeichnis
- -S¶
Deaktiviert den Import des Moduls
siteund die damit verbundenen standortspezifischen Manipulationen vonsys.path. Deaktiviert auch diese Manipulationen, wennsitespäter explizit importiert wird (rufen Siesite.main()auf, wenn Sie möchten, dass sie ausgelöst werden).
- -u¶
Erzwingt, dass die Ströme stdout und stderr ungepuffert sind. Diese Option hat keine Auswirkung auf den stdin-Strom.
Siehe auch
PYTHONUNBUFFERED.Geändert in Version 3.7: Die Textschicht der stdout- und stderr-Ströme ist nun ungepuffert.
- -v¶
Gibt eine Meldung aus, jedes Mal wenn ein Modul initialisiert wird, und zeigt den Ort (Dateiname oder eingebautes Modul) an, von dem es geladen wird. Wenn zweimal angegeben (
-vv), gibt es für jede Datei, die beim Suchen nach einem Modul überprüft wird, eine Meldung aus. Liefert auch Informationen zur Modulbereinigung beim Beenden.Geändert in Version 3.10: Das Modul
sitemeldet die standortspezifischen Pfade und die verarbeiteten.pth-Dateien.Siehe auch
PYTHONVERBOSE.
- -W arg¶
Warnungssteuerung. Die Python-Warnungsmaschine gibt standardmäßig Warnmeldungen auf
sys.stderraus.Die einfachsten Einstellungen wenden eine bestimmte Aktion bedingungslos auf alle von einem Prozess ausgegebenen Warnungen an (auch solche, die standardmäßig ansonsten ignoriert werden).
-Wdefault # Warn once per call location -Werror # Convert to exceptions -Walways # Warn every time -Wall # Same as -Walways -Wmodule # Warn once per calling module -Wonce # Warn once per Python process -Wignore # Never warn
Die Aktionsnamen können beliebig abgekürzt werden und der Interpreter löst sie zum entsprechenden Aktionsnamen auf. Zum Beispiel ist
-Widasselbe wie-Wignore.Die vollständige Form des Arguments ist
action:message:category:module:lineno
Leere Felder stimmen mit allen Werten überein; nachfolgende leere Felder können weggelassen werden. Zum Beispiel ignoriert
-W ignore::DeprecationWarningalle DeprecationWarning-Warnungen.Das Feld Aktion ist wie oben beschrieben, gilt aber nur für Warnungen, die mit den verbleibenden Feldern übereinstimmen.
Das Feld Nachricht muss mit der gesamten Warnmeldung übereinstimmen; diese Übereinstimmung ist nicht zwischen Groß- und Kleinschreibung zu unterscheiden.
Das Feld Kategorie stimmt mit der Warnungskategorie überein (z. B.
DeprecationWarning). Dies muss ein Klassenname sein; die Übereinstimmung testet, ob die tatsächliche Warnungskategorie der Meldung eine Unterklasse der angegebenen Warnungskategorie ist.Das Feld Modul stimmt mit dem (vollqualifizierten) Modulnamen überein; diese Übereinstimmung ist zwischen Groß- und Kleinschreibung zu unterscheiden.
Das Feld Zeilennummer stimmt mit der Zeilennummer überein, wobei Null mit allen Zeilennummern übereinstimmt und somit einer weggelassenen Zeilennummer entspricht.
Mehrere
-W-Optionen können angegeben werden; wenn eine Warnung mit mehr als einer Option übereinstimmt, wird die Aktion der letzten übereinstimmenden Option ausgeführt. Ungültige-W-Optionen werden ignoriert (obwohl eine Warnmeldung über ungültige Optionen ausgegeben wird, wenn die erste Warnung ausgegeben wird).Warnungen können auch über die Umgebungsvariable
PYTHONWARNINGSund innerhalb eines Python-Programms über das Modulwarningsgesteuert werden. Zum Beispiel kann die Funktionwarnings.filterwarnings()verwendet werden, um einen regulären Ausdruck auf die Warnmeldung anzuwenden.Weitere Details finden Sie unter Der Warnungsfilter und Beschreibung von Warnungsfiltern.
- -x¶
Überspringt die erste Zeile der Quelle und ermöglicht die Verwendung von nicht-UNIX-Formen von
#!cmd. Dies ist nur für einen DOS-spezifischen Hack gedacht.
- -X¶
Reserviert für verschiedene implementierungsspezifische Optionen. CPython definiert derzeit die folgenden möglichen Werte:
-X faulthandlerzur Aktivierung vonfaulthandler. Siehe auchPYTHONFAULTHANDLER.Hinzugefügt in Version 3.3.
-X showrefcountgibt die Gesamtzahl der Referenzen und die Anzahl der belegten Speicherblöcke aus, wenn das Programm beendet wird oder nach jeder Anweisung im interaktiven Interpreter. Dies funktioniert nur bei Debug-Builds.Hinzugefügt in Version 3.4.
-X tracemallocstartet die Verfolgung von Python-Speicherzuweisungen mit dem Modultracemalloc. Standardmäßig wird nur der letzte Frame in einem Traceback eines Traces gespeichert. Verwenden Sie-X tracemalloc=NFRAME, um die Verfolgung mit einer Traceback-Grenze von NFRAME Frames zu starten. Weitere Informationen finden Sie untertracemalloc.start()undPYTHONTRACEMALLOC.Hinzugefügt in Version 3.4.
-X int_max_str_digitskonfiguriert die Begrenzung der Längenkonvertierung von Ganzzahl-Strings. Siehe auchPYTHONINTMAXSTRDIGITS.Hinzugefügt in Version 3.11.
-X importtimezeigt an, wie lange jeder Import dauert. Es werden der Modulname, die kumulative Zeit (einschließlich verschachtelter Imports) und die eigene Zeit (ohne verschachtelte Imports) angezeigt. Beachten Sie, dass die Ausgabe in Multithread-Anwendungen fehlerhaft sein kann. Eine typische Verwendung istpython -X importtime -c 'import asyncio'.-X importtime=2aktiviert zusätzliche Ausgaben, die anzeigen, wann ein importiertes Modul bereits geladen wurde. In solchen Fällen wird in beiden Zeitspalten das Wortcachedausgegeben.Siehe auch
PYTHONPROFILEIMPORTTIME.Hinzugefügt in Version 3.7.
Geändert in Version 3.14:
-X importtime=2hinzugefügt, um auch Imports von bereits geladenen Modulen zu verfolgen, und Werte außer1und2für zukünftige Verwendung reserviert.-X dev: aktiviert den Python Development Mode, der zusätzliche Laufzeitprüfungen einführt, die zu teuer sind, um standardmäßig aktiviert zu werden. Siehe auchPYTHONDEVMODE.Hinzugefügt in Version 3.7.
-X utf8aktiviert den Python UTF-8 Modus.-X utf8=0deaktiviert explizit den Python UTF-8 Modus (auch wenn er sonst automatisch aktiviert würde). Siehe auchPYTHONUTF8.Hinzugefügt in Version 3.7.
-X pycache_prefix=PATHschreibt.pyc-Dateien in einen parallelen Baum, der im angegebenen Verzeichnis wurzelt, anstatt in den Codebaum. Siehe auchPYTHONPYCACHEPREFIX.Hinzugefügt in Version 3.8.
-X warn_default_encodinggibt eineEncodingWarningaus, wenn die lokalspezifische Standardkodierung zum Öffnen von Dateien verwendet wird. Siehe auchPYTHONWARNDEFAULTENCODING.Hinzugefügt in Version 3.10.
-X no_debug_rangesdeaktiviert die Einbindung der Tabellen, die zusätzliche Standortinformationen (Endzeile, Spaltenoffset Anfang und Spaltenoffset Ende) jedem Befehl in Codeobjekten zuordnen. Dies ist nützlich, wenn kleinere Codeobjekte und pyc-Dateien gewünscht werden und die zusätzlichen visuellen Standortanzeigen unterdrückt werden sollen, wenn der Interpreter Tracebacks anzeigt. Siehe auchPYTHONNODEBUGRANGES.Hinzugefügt in Version 3.11.
-X frozen_modulesbestimmt, ob eingefrorene Module von der Importmaschine ignoriert werden oder nicht. Ein Wert vononbedeutet, dass sie importiert werden, undoffbedeutet, dass sie ignoriert werden. Der Standardwert iston, wenn es sich um ein installiertes Python handelt (der Normalfall). Wenn es sich um eine Entwicklung handelt (Ausführung aus dem Quellbaum), ist der Standardwertoff. Beachten Sie, dass die eingefrorenen Moduleimportlib_bootstrapundimportlib_bootstrap_externalimmer verwendet werden, auch wenn dieses Flag aufoffgesetzt ist. Siehe auchPYTHON_FROZEN_MODULES.Hinzugefügt in Version 3.11.
-X perfaktiviert die Unterstützung für den LinuxperfProfiler. Wenn diese Option angegeben wird, kann derperfProfiler Python-Aufrufe melden. Diese Option ist nur auf einigen Plattformen verfügbar und bewirkt nichts, wenn sie auf dem aktuellen System nicht unterstützt wird. Der Standardwert ist "off". Siehe auchPYTHONPERFSUPPORTund Python-Unterstützung für den Linux perf-Profiler.Hinzugefügt in Version 3.12.
-X perf_jitaktiviert die Unterstützung für den LinuxperfProfiler mit DWARF-Unterstützung. Wenn diese Option angegeben wird, kann derperfProfiler Python-Aufrufe unter Verwendung von DWARF-Informationen melden. Diese Option ist nur auf einigen Plattformen verfügbar und bewirkt nichts, wenn sie auf dem aktuellen System nicht unterstützt wird. Der Standardwert ist "off". Siehe auchPYTHON_PERF_JIT_SUPPORTund Python-Unterstützung für den Linux perf-Profiler.Hinzugefügt in Version 3.13.
-X disable_remote_debugdeaktiviert die Remote-Debugging-Unterstützung, wie in PEP 768 beschrieben. Dies umfasst sowohl die Funktionalität zur Planung der Ausführung von Code in einem anderen Prozess als auch die Funktionalität zum Empfang von Code zur Ausführung im aktuellen Prozess.Diese Option ist nur auf einigen Plattformen verfügbar und bewirkt nichts, wenn sie auf dem aktuellen System nicht unterstützt wird. Siehe auch
PYTHON_DISABLE_REMOTE_DEBUGund PEP 768.Hinzugefügt in Version 3.14.
-X cpu_count=nüberschreibtos.cpu_count(),os.process_cpu_count()undmultiprocessing.cpu_count(). n muss größer oder gleich 1 sein. Diese Option kann für Benutzer nützlich sein, die CPU-Ressourcen eines Container-Systems begrenzen müssen. Siehe auchPYTHON_CPU_COUNT. Wenn ndefaultist, wird nichts überschrieben.Hinzugefügt in Version 3.13.
-X presite=package.modulegibt ein Modul an, das importiert werden soll, bevor das Modulsiteausgeführt wird und bevor das Modul__main__existiert. Daher ist das importierte Modul nicht__main__. Dies kann verwendet werden, um Code früh während der Python-Initialisierung auszuführen. Python muss im Debug-Modus kompiliert sein, damit diese Option existiert. Siehe auchPYTHON_PRESITE.Hinzugefügt in Version 3.13.
-X gil=0,1erzwingt das Deaktivieren (0) oder Aktivieren (1) des GIL. Das Setzen auf0ist nur in Builds verfügbar, die mit--disable-gilkonfiguriert wurden. Siehe auchPYTHON_GILund Frei-Threaded CPython.Hinzugefügt in Version 3.13.
-X thread_inherit_context=0,1bewirkt, dassThreadstandardmäßig eine Kopie des Kontexts des Aufrufers vonThread.start()verwendet, wenn er gestartet wird. Andernfalls starten Threads mit einem leeren Kontext. Wenn nicht gesetzt, ist der Wert dieser Option standardmäßig1bei frei-threaded Builds und andernfalls0. Siehe auchPYTHON_THREAD_INHERIT_CONTEXT.Hinzugefügt in Version 3.14.
-X context_aware_warnings=0,1bewirkt, dass derwarnings.catch_warningsKontextmanager einContextVarverwendet, um den Warnungsfilterstatus zu speichern. Wenn nicht gesetzt, ist der Wert dieser Option standardmäßig1bei frei-threaded Builds und andernfalls0. Siehe auchPYTHON_CONTEXT_AWARE_WARNINGS.Hinzugefügt in Version 3.14.
-X tlbc=0,1aktiviert (1, der Standard) oder deaktiviert (0) Thread-lokalen Bytecode in Builds, die mit--disable-gilkonfiguriert sind. Wenn deaktiviert, deaktiviert dies auch den spezialisierenden Interpreter. Siehe auchPYTHON_TLBC.Hinzugefügt in Version 3.14.
Es erlaubt auch das Übergeben beliebiger Werte und deren Abruf über das Dictionary
sys._xoptions.Hinzugefügt in Version 3.2.
Geändert in Version 3.9: Die Option
-X showalloccountwurde entfernt.Geändert in Version 3.10: Die Option
-X oldparserwurde entfernt.
Entfernt in Version 3.14: -J ist nicht mehr für Jython reserviert und hat keine spezielle Bedeutung mehr.
1.1.4. Steuerung von Farben¶
Der Python-Interpreter ist standardmäßig so konfiguriert, dass er Farben verwendet, um die Ausgabe in bestimmten Situationen wie beim Anzeigen von Tracebacks hervorzuheben. Dieses Verhalten kann durch Setzen verschiedener Umgebungsvariablen gesteuert werden.
Das Setzen der Umgebungsvariablen TERM auf dumb deaktiviert Farben.
Wenn die Umgebungsvariable FORCE_COLOR gesetzt ist, werden Farben unabhängig vom Wert von TERM aktiviert. Dies ist nützlich auf CI-Systemen, die keine Terminals sind, aber dennoch ANSI-Escape-Sequenzen anzeigen können.
Wenn die Umgebungsvariable NO_COLOR gesetzt ist, deaktiviert Python alle Farben in der Ausgabe. Dies hat Vorrang vor FORCE_COLOR.
Alle diese Umgebungsvariablen werden auch von anderen Werkzeugen zur Steuerung der Farbausgabe verwendet. Um die Farbausgabe nur im Python-Interpreter zu steuern, kann die Umgebungsvariable PYTHON_COLORS verwendet werden. Diese Variable hat Vorrang vor NO_COLOR, was wiederum Vorrang vor FORCE_COLOR hat.
1.2. Umgebungsvariablen¶
Diese Umgebungsvariablen beeinflussen das Verhalten von Python; sie werden vor den Kommandozeilenoptionen außer -E oder -I verarbeitet. Es ist üblich, dass Kommandozeilenoptionen Umgebungsvariablen überschreiben, wenn ein Konflikt besteht.
- PYTHONHOME¶
Ändert den Speicherort der Standard-Python-Bibliotheken. Standardmäßig werden die Bibliotheken in
prefix/lib/pythonversionundexec_prefix/lib/pythonversiongesucht, wobeiprefixundexec_prefixinstallationsabhängige Verzeichnisse sind, die beide standardmäßig auf/usr/localgesetzt sind.Wenn
PYTHONHOMEauf ein einzelnes Verzeichnis gesetzt ist, ersetzt sein Wert sowohlprefixals auchexec_prefix. Um unterschiedliche Werte für diese anzugeben, setzen SiePYTHONHOMEaufprefix:exec_prefix.
- PYTHONPATH¶
Erweitert den Standard-Suchpfad für Moduldateien. Das Format ist dasselbe wie bei der Shell-Variable
PATH: ein oder mehrere Verzeichnispfade, getrennt durchos.pathsep(z. B. Doppelpunkte unter Unix oder Semikolons unter Windows). Nicht existierende Verzeichnisse werden stillschweigend ignoriert.Zusätzlich zu normalen Verzeichnissen können einzelne
PYTHONPATH-Einträge auf Zip-Dateien verweisen, die reine Python-Module enthalten (in Quell- oder kompilierter Form). Erweiterungsmodule können nicht aus Zip-Dateien importiert werden.Der Standard-Suchpfad ist installationsabhängig, beginnt aber im Allgemeinen mit
prefix/lib/pythonversion(siehePYTHONHOMEoben). Er wird *immer* anPYTHONPATHangehängt.Ein zusätzliches Verzeichnis wird in den Suchpfad vor
PYTHONPATHeingefügt, wie oben unter Schnittstellenoptionen beschrieben. Der Suchpfad kann aus einem Python-Programm heraus als Variablesys.pathmanipuliert werden.
- PYTHONSAFEPATH¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, wird kein potenziell unsicherer Pfad an
sys.pathangehängt: siehe die Option-Pfür Details.Hinzugefügt in Version 3.11.
- PYTHONPLATLIBDIR¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, überschreibt sie den Wert von
sys.platlibdir.Hinzugefügt in Version 3.9.
- PYTHONSTARTUP¶
Wenn dies der Name einer lesbaren Datei ist, werden die Python-Befehle in dieser Datei ausgeführt, bevor die erste Eingabeaufforderung im interaktiven Modus angezeigt wird. Die Datei wird im selben Namensraum ausgeführt, in dem interaktive Befehle ausgeführt werden, so dass Objekte, die darin definiert oder importiert werden, ohne Qualifizierung in der interaktiven Sitzung verwendet werden können. Sie können auch die Eingabeaufforderungen
sys.ps1undsys.ps2und den Hooksys.__interactivehook__in dieser Datei ändern.Löst ein Audit-Ereignis
cpython.run_startupmit dem Dateinamen als Argument aus, wenn es beim Start aufgerufen wird.
- PYTHONOPTIMIZE¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, ist dies gleichbedeutend mit der Angabe der Option
-O. Wenn es auf eine Ganzzahl gesetzt ist, ist dies gleichbedeutend mit der mehrfachen Angabe von-O.
- PYTHONBREAKPOINT¶
Wenn dies gesetzt ist, benennt es einen aufrufbaren Wert mittels Punktnotation. Das Modul, das den aufrufbaren Wert enthält, wird importiert und dann wird der aufrufbare Wert von der Standardimplementierung von
sys.breakpointhook()aufgerufen, die selbst von der integrierten Funktionbreakpoint()aufgerufen wird. Wenn nicht gesetzt oder als leere Zeichenkette gesetzt, ist dies gleichbedeutend mit dem Wert "pdb.set_trace". Das Setzen auf die Zeichenkette "0" bewirkt, dass die Standardimplementierung vonsys.breakpointhook()nichts tut, außer sofort zurückzukehren.Hinzugefügt in Version 3.7.
- PYTHONDEBUG¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, ist dies gleichbedeutend mit der Angabe der Option
-d. Wenn es auf eine Ganzzahl gesetzt ist, ist dies gleichbedeutend mit der mehrfachen Angabe von-d.Diese Umgebungsvariable erfordert einen Debug-Build von Python, andernfalls wird sie ignoriert.
- PYTHONINSPECT¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, ist dies gleichbedeutend mit der Angabe der Option
-i.Diese Variable kann auch durch Python-Code mit
os.environmodifiziert werden, um den Inspeektionsmodus beim Programmabbruch zu erzwingen.Löst ein Audit-Ereignis
cpython.run_stdinohne Argumente aus.Geändert in Version 3.12.5: (auch 3.11.10, 3.10.15, 3.9.20 und 3.8.20) Gibt Audit-Ereignisse aus.
Geändert in Version 3.13: Verwendet PyREPL, wenn möglich. In diesem Fall wird auch
PYTHONSTARTUPausgeführt. Gibt Audit-Ereignisse aus.
- PYTHONUNBUFFERED¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, ist dies gleichbedeutend mit der Angabe der Option
-u.
- PYTHONVERBOSE¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, ist dies gleichbedeutend mit der Angabe der Option
-v. Wenn es auf eine Ganzzahl gesetzt ist, ist dies gleichbedeutend mit der mehrfachen Angabe von-v.
- PYTHONCASEOK¶
Wenn dies gesetzt ist, ignoriert Python die Groß-/Kleinschreibung in
import-Anweisungen. Dies funktioniert nur unter Windows und macOS.
- PYTHONDONTWRITEBYTECODE¶
Wenn dies auf eine nicht-leere Zeichenkette gesetzt ist, versucht Python nicht,
.pyc-Dateien beim Import von Quellmodulen zu schreiben. Dies ist gleichbedeutend mit der Angabe der Option-B.
- PYTHONPYCACHEPREFIX¶
Wenn dies gesetzt ist, schreibt Python
.pyc-Dateien in einen spiegelnden Verzeichnisbaum unter diesem Pfad, anstatt in__pycache__-Verzeichnisse innerhalb des Quellbaums. Dies ist gleichbedeutend mit der Angabe der Option-Xpycache_prefix=PATH.Hinzugefügt in Version 3.8.
- PYTHONHASHSEED¶
Wenn diese Variable nicht gesetzt oder auf
randomgesetzt ist, wird ein zufälliger Wert verwendet, um die Hashes von str- und bytes-Objekten zu seeden.Wenn
PYTHONHASHSEEDauf einen Ganzzahlwert gesetzt ist, wird dieser als fester Seed für die Erzeugung des Hash() der Typen verwendet, die von der Hash-Randomisierung abgedeckt werden.Sein Zweck ist die Ermöglichung wiederholbarer Hashing-Vorgänge, z. B. für Selftests des Interpreters selbst oder um einem Cluster von Python-Prozessen das Teilen von Hash-Werten zu ermöglichen.
Die Ganzzahl muss eine Dezimalzahl im Bereich [0,4294967295] sein. Die Angabe des Werts 0 deaktiviert die Hash-Randomisierung.
Hinzugefügt in Version 3.2.3.
- PYTHONINTMAXSTRDIGITS¶
Wenn diese Variable auf eine Ganzzahl gesetzt ist, wird sie zur Konfiguration der globalen Ganzzahl-String-Konvertierungslängenbegrenzung des Interpreters verwendet.
Hinzugefügt in Version 3.11.
- PYTHONIOENCODING¶
Wenn dies vor der Ausführung des Interpreters gesetzt wird, überschreibt es die für stdin/stdout/stderr verwendete Kodierung im Format
encodingname:errorhandler. Sowohl der Teilencodingnameals auch der Teil:errorhandlersind optional und haben die gleiche Bedeutung wie instr.encode().Für stderr wird der Teil
:errorhandlerignoriert; der Handler wird immer'backslashreplace'sein.Geändert in Version 3.4: Der Teil
encodingnameist jetzt optional.Geändert in Version 3.6: Unter Windows wird die durch diese Variable angegebene Kodierung für interaktive Konsolenpuffer ignoriert, es sei denn,
PYTHONLEGACYWINDOWSSTDIOwird ebenfalls angegeben. Dateien und Pipes, die über die Standard-Streams umgeleitet werden, sind nicht betroffen.
- PYTHONNOUSERSITE¶
Wenn dies gesetzt ist, wird Python das Verzeichnis
site-packages des Benutzersnicht zusys.pathhinzufügen.Siehe auch
PEP 370 – Verzeichnis „site-packages“ pro Benutzer
- PYTHONUSERBASE¶
Definiert das
Basisverzeichnis des Benutzers, das zur Berechnung des Pfads für das Verzeichnissite-packages des Benutzersund für Installationspfade fürpython -m pip install --userverwendet wird.Siehe auch
PEP 370 – Verzeichnis „site-packages“ pro Benutzer
- PYTHONEXECUTABLE¶
Wenn diese Umgebungsvariable gesetzt ist, wird
sys.argv[0]auf ihren Wert gesetzt, anstatt auf den Wert, der von der C-Laufzeitumgebung erhalten wird. Funktioniert nur unter macOS.
- PYTHONWARNINGS¶
Dies ist äquivalent zur Option
-W. Wenn es auf eine durch Kommas getrennte Zeichenkette gesetzt ist, ist es äquivalent zur mehrfachen Angabe von-W, wobei Filter später in der Liste Vorrang vor denen haben, die früher in der Liste stehen.Die einfachsten Einstellungen wenden eine bestimmte Aktion bedingungslos auf alle von einem Prozess ausgegebenen Warnungen an (auch solche, die standardmäßig ansonsten ignoriert werden).
PYTHONWARNINGS=default # Warn once per call location PYTHONWARNINGS=error # Convert to exceptions PYTHONWARNINGS=always # Warn every time PYTHONWARNINGS=all # Same as PYTHONWARNINGS=always PYTHONWARNINGS=module # Warn once per calling module PYTHONWARNINGS=once # Warn once per Python process PYTHONWARNINGS=ignore # Never warn
Weitere Details finden Sie unter Der Warnungsfilter und Beschreibung von Warnungsfiltern.
- PYTHONFAULTHANDLER¶
Wenn diese Umgebungsvariable auf eine nicht leere Zeichenkette gesetzt ist, wird
faulthandler.enable()beim Start aufgerufen: Ein Handler für die SignaleSIGSEGV,SIGFPE,SIGABRT,SIGBUSundSIGILLwird installiert, um den Python-Traceback zu dumpen. Dies ist äquivalent zur Option-Xfaulthandler.Hinzugefügt in Version 3.3.
- PYTHONTRACEMALLOC¶
Wenn diese Umgebungsvariable auf eine nicht leere Zeichenkette gesetzt ist, beginnt die Nachverfolgung von Python-Speicherzuweisungen mithilfe des Moduls
tracemalloc. Der Wert der Variablen gibt die maximale Anzahl von Frames an, die in einem Traceback eines Traces gespeichert werden. Zum Beispiel speichertPYTHONTRACEMALLOC=1nur den letzten Frame. Weitere Informationen finden Sie in der Funktiontracemalloc.start(). Dies ist äquivalent zur Einstellung der Option-Xtracemalloc.Hinzugefügt in Version 3.4.
- PYTHONPROFILEIMPORTTIME¶
Wenn diese Umgebungsvariable auf
1gesetzt ist, zeigt Python an, wie lange jeder Import dauert. Wenn sie auf2gesetzt ist, schließt Python auch die Ausgabe für importierte Module ein, die bereits geladen wurden. Dies ist äquivalent zur Einstellung der Option-Ximporttime.Hinzugefügt in Version 3.7.
Geändert in Version 3.14: Hinzugefügt
PYTHONPROFILEIMPORTTIME=2, um auch Importe von geladenen Modulen zu verfolgen.
- PYTHONASYNCIODEBUG¶
Wenn diese Umgebungsvariable auf eine nicht leere Zeichenkette gesetzt ist, wird der Debug-Modus des Moduls
asyncioaktiviert.Hinzugefügt in Version 3.4.
- PYTHONMALLOC¶
Legt die Speicherallokatoren von Python fest und/oder installiert Debug-Hooks.
Legt die Familie der von Python verwendeten Speicherallokatoren fest
default: verwendet die Standard-Speicherallokatoren.malloc: verwendet diemalloc()-Funktion der C-Bibliothek für alle Domänen (PYMEM_DOMAIN_RAW,PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ).pymalloc: verwendet den pymalloc-Allocator für die DomänenPYMEM_DOMAIN_MEMundPYMEM_DOMAIN_OBJund verwendet die Funktionmalloc()für die DomänePYMEM_DOMAIN_RAW.mimalloc: verwendet den mimalloc-Allocator für die DomänenPYMEM_DOMAIN_MEMundPYMEM_DOMAIN_OBJund verwendet die Funktionmalloc()für die DomänePYMEM_DOMAIN_RAW.
Installiert Debug-Hooks
debug: installiert Debug-Hooks über den Standard-Speicherallokatoren.malloc_debug: wiemalloc, installiert aber zusätzlich Debug-Hooks.pymalloc_debug: wiepymalloc, installiert aber zusätzlich Debug-Hooks.mimalloc_debug: wiemimalloc, installiert aber zusätzlich Debug-Hooks.
Hinzugefügt in Version 3.6.
Geändert in Version 3.7: Der Allocator
"default"wurde hinzugefügt.
- PYTHONMALLOCSTATS¶
Wenn dies auf eine nicht leere Zeichenkette gesetzt ist, gibt Python bei jeder Erstellung einer neuen Arena für pymalloc-Objekte und beim Herunterfahren Statistiken des pymalloc-Speicherallokators aus.
Diese Variable wird ignoriert, wenn die Umgebungsvariable
PYTHONMALLOCverwendet wird, um denmalloc()-Allocator der C-Bibliothek zu erzwingen, oder wenn Python ohnepymalloc-Unterstützung konfiguriert ist.Geändert in Version 3.6: Diese Variable kann nun auch bei in Release-Modus kompiliertem Python verwendet werden. Sie hat nun keine Auswirkung mehr, wenn sie auf eine leere Zeichenkette gesetzt ist.
- PYTHONLEGACYWINDOWSFSENCODING¶
Wenn dies auf eine nicht leere Zeichenkette gesetzt ist, kehrt der Standardmodus für Dateisystemkodierung und Fehlerbehandlung zu den Werten vor 3.6 zurück: „mbcs“ und „replace“. Andernfalls werden die neuen Standardwerte „utf-8“ und „surrogatepass“ verwendet.
Dies kann auch zur Laufzeit mit
sys._enablelegacywindowsfsencoding()aktiviert werden.Verfügbarkeit: Windows.
Hinzugefügt in Version 3.6: Siehe PEP 529 für weitere Details.
- PYTHONLEGACYWINDOWSSTDIO¶
Wenn dies auf eine nicht leere Zeichenkette gesetzt ist, wird der neue Konsolenleser und -schreiber nicht verwendet. Das bedeutet, dass Unicode-Zeichen gemäß der aktiven Konsolen-Codierungsseite kodiert werden, anstatt UTF-8 zu verwenden.
Diese Variable wird ignoriert, wenn die Standardströme umgeleitet werden (in Dateien oder Pipes) und nicht auf Konsolenpuffer verweisen.
Verfügbarkeit: Windows.
Hinzugefügt in Version 3.6.
- PYTHONCOERCECLOCALE¶
Wenn dies auf den Wert
0gesetzt ist, überspringt die Haupt-Python-Befehlszeilenanwendung die Konvertierung der älteren ASCII-basierten C- und POSIX-Locales in eine leistungsfähigere UTF-8-basierte Alternative.Wenn diese Variable *nicht* gesetzt ist (oder auf einen anderen Wert als
0gesetzt ist), wird die UmgebungsvariableLC_ALL, die die Locale überschreibt, ebenfalls nicht gesetzt, und die für die KategorieLC_CTYPEgemeldete aktuelle Locale ist entweder die Standard-LocaleCoder die explizit ASCII-basierte LocalePOSIX, dann versucht die Python-CLI, die folgenden Locales für die KategorieLC_CTYPEin der angegebenen Reihenfolge zu konfigurieren, bevor die Interpreterlaufzeit geladen wird:C.UTF-8C.utf8UTF-8
Wenn das Setzen einer dieser Locale-Kategorien erfolgreich ist, wird die Umgebungsvariable
LC_CTYPEauch entsprechend in der aktuellen Prozessumgebung gesetzt, bevor die Python-Laufzeitumgebung initialisiert wird. Dies stellt sicher, dass die aktualisierte Einstellung nicht nur vom Interpreter selbst und anderen locale-fähigen Komponenten im selben Prozess (wie der GNUreadline-Bibliothek) gesehen wird, sondern auch in Unterprozessen (unabhängig davon, ob diese Prozesse einen Python-Interpreter ausführen oder nicht) sowie in Operationen, die die Umgebung abfragen und nicht die aktuelle C-Locale (wie Pythons eigenelocale.getdefaultlocale()).Die Konfiguration einer dieser Locales (entweder explizit oder durch die oben genannte implizite Locale-Konvertierung) aktiviert automatisch den Fehlerbehandler
surrogateescapefürsys.stdinundsys.stdout(sys.stderrverwendet weiterhinbackslashreplace, wie in jeder anderen Locale auch). Dieses Verhalten bei der Stream-Handhabung kann wie üblich mitPYTHONIOENCODINGüberschrieben werden.Zu Debugging-Zwecken bewirkt das Setzen von
PYTHONCOERCECLOCALE=warn, dass Python Warnmeldungen aufstderrausgibt, wenn entweder die Locale-Konvertierung aktiviert wird oder wenn eine Locale, die eine Konvertierung ausgelöst *hätte*, immer noch aktiv ist, wenn die Python-Laufzeitumgebung initialisiert wird.Beachten Sie auch, dass selbst wenn die Locale-Konvertierung deaktiviert ist oder wenn sie keine geeignete Ziel-Locale findet,
PYTHONUTF8in älteren ASCII-basierten Locales standardmäßig immer noch aktiviert wird. Beide Funktionen müssen deaktiviert sein, um den Interpreter zur Verwendung vonASCIIanstelle vonUTF-8für Systemaufrufe zu zwingen.Verfügbarkeit: Unix.
Hinzugefügt in Version 3.7: Siehe PEP 538 für weitere Details.
- PYTHONDEVMODE¶
Wenn diese Umgebungsvariable auf eine nicht leere Zeichenkette gesetzt ist, wird der Python-Entwicklermodus aktiviert, der zusätzliche Laufzeitprüfungen einführt, die zu kostspielig sind, um standardmäßig aktiviert zu werden. Dies ist äquivalent zur Einstellung der Option
-Xdev.Hinzugefügt in Version 3.7.
- PYTHONUTF8¶
Wenn dies auf
1gesetzt ist, wird der Python UTF-8-Modus aktiviert.Wenn dies auf
0gesetzt ist, wird der Python UTF-8-Modus deaktiviert.Das Setzen einer anderen nicht leeren Zeichenkette führt zu einem Fehler während der Interpreterinitialisierung.
Hinzugefügt in Version 3.7.
- PYTHONWARNDEFAULTENCODING¶
Wenn diese Umgebungsvariable auf eine nicht leere Zeichenkette gesetzt ist, wird eine
EncodingWarningausgegeben, wenn die localespezifische Standardkodierung verwendet wird.Siehe Opt-in EncodingWarning für Details.
Hinzugefügt in Version 3.10.
- PYTHONNODEBUGRANGES¶
Wenn diese Variable gesetzt ist, wird die Einbeziehung der Tabellen, die zusätzliche Standortinformationen (Endzeile, Startspalten-Offset und Endspalten-Offset) mit jedem Befehl in Codeobjekten abbilden, deaktiviert. Dies ist nützlich, wenn kleinere Codeobjekte und pyc-Dateien gewünscht sind und die zusätzlichen visuellen Standortindikatoren unterdrückt werden sollen, wenn der Interpreter Tracebacks anzeigt.
Hinzugefügt in Version 3.11.
- PYTHONPERFSUPPORT¶
Wenn diese Variable auf einen von Null verschiedenen Wert gesetzt ist, wird die Unterstützung für den Linux-Profiler
perfaktiviert, damit Python-Aufrufe von ihm erkannt werden können.Wenn auf
0gesetzt, wird die Unterstützung für den Linux-Profilerperfdeaktiviert.Siehe auch die Kommandozeilenoption
-X perfund Python-Unterstützung für den Linux perf-Profiler.Hinzugefügt in Version 3.12.
- PYTHON_PERF_JIT_SUPPORT¶
Wenn diese Variable auf einen von Null verschiedenen Wert gesetzt ist, wird die Unterstützung für den Linux-Profiler
perfaktiviert, damit Python-Aufrufe von ihm unter Verwendung von DWARF-Informationen erkannt werden können.Wenn auf
0gesetzt, wird die Unterstützung für den Linux-Profilerperfdeaktiviert.Siehe auch die Kommandozeilenoption
-X perf_jitund Python-Unterstützung für den Linux perf-Profiler.Hinzugefügt in Version 3.13.
- PYTHON_DISABLE_REMOTE_DEBUG¶
Wenn diese Variable auf eine nicht leere Zeichenkette gesetzt ist, wird die in PEP 768 beschriebene Remote-Debugging-Funktion deaktiviert. Dies umfasst sowohl die Funktionalität zur Planung der Ausführung von Code in einem anderen Prozess als auch die Funktionalität zum Empfangen von Code zur Ausführung im aktuellen Prozess.
Siehe auch die Kommandozeilenoption
-X disable_remote_debug.Hinzugefügt in Version 3.14.
- PYTHON_CPU_COUNT¶
Wenn diese Variable auf eine positive Ganzzahl gesetzt ist, überschreibt sie die Rückgabewerte von
os.cpu_count()undos.process_cpu_count().Siehe auch die Kommandozeilenoption
-X cpu_count.Hinzugefügt in Version 3.13.
- PYTHON_FROZEN_MODULES¶
Wenn diese Variable auf
onoderoffgesetzt ist, bestimmt sie, ob eingefrorene Module von der Importmechanik ignoriert werden oder nicht. Ein Wert vononbedeutet, dass sie importiert werden, undoffbedeutet, dass sie ignoriert werden. Der Standardwert istonfür Nicht-Debug-Builds (der Normalfall) undofffür Debug-Builds. Beachten Sie, dass die eingefrorenen Moduleimportlib_bootstrapundimportlib_bootstrap_externalimmer verwendet werden, auch wenn diese Einstellung aufoffgesetzt ist.Siehe auch die Kommandozeilenoption
-X frozen_modules.Hinzugefügt in Version 3.13.
- PYTHON_COLORS¶
Wenn diese Variable auf
1gesetzt ist, wird der Interpreter verschiedene Arten von Ausgaben farblich hervorheben. Das Setzen auf0deaktiviert dieses Verhalten. Siehe auch Steuerung der Farbe.Hinzugefügt in Version 3.13.
- PYTHON_BASIC_REPL¶
Wenn diese Variable auf einen beliebigen Wert gesetzt ist, versucht der Interpreter nicht, die Python-basierte REPL zu laden, die
readlinebenötigt, und verwendet stattdessen die traditionelle Parser-basierte REPL.Hinzugefügt in Version 3.13.
- PYTHON_HISTORY¶
Diese Umgebungsvariable kann verwendet werden, um den Speicherort einer Datei
.python_historyfestzulegen (standardmäßig ist es.python_historyim Heimatverzeichnis des Benutzers).Hinzugefügt in Version 3.13.
- PYTHON_GIL¶
Wenn diese Variable auf
1gesetzt ist, wird der globale Interpreter-Lock (GIL) erzwungen. Das Setzen auf0erzwingt das Ausschalten des GIL (erfordert, dass Python mit der Build-Option--disable-gilkonfiguriert wurde).Siehe auch die Kommandozeilenoption
-X gil, die Vorrang vor dieser Variablen hat, und Free-threaded CPython.Hinzugefügt in Version 3.13.
- PYTHON_THREAD_INHERIT_CONTEXT¶
Wenn diese Variable auf
1gesetzt ist, verwendetThreadstandardmäßig eine Kopie des Kontexts des Aufrufers vonThread.start()beim Starten. Andernfalls starten neue Threads mit einem leeren Kontext. Wenn diese Variable nicht gesetzt ist, hat sie standardmäßig den Wert1bei Free-threaded Builds und0andernfalls. Siehe auch-X thread_inherit_context.Hinzugefügt in Version 3.14.
- PYTHON_CONTEXT_AWARE_WARNINGS¶
Wenn dies auf
1gesetzt ist, verwendet der Kontextmanagerwarnings.catch_warningseinContextVar, um den Zustand des Warnungsfilters zu speichern. Wenn diese Variable nicht gesetzt ist, hat sie standardmäßig den Wert1bei Free-threaded Builds und0andernfalls. Siehe-X context_aware_warnings.Hinzugefügt in Version 3.14.
- PYTHON_JIT¶
Bei Builds, bei denen experimentelle Just-in-Time-Kompilierung verfügbar ist, kann diese Variable den JIT beim Start des Interpreters erzwingen (deaktiviert:
0) oder aktivieren (1).Hinzugefügt in Version 3.13.
- PYTHON_TLBC¶
Wenn auf
1gesetzt, wird Thread-lokaler Bytecode aktiviert. Wenn auf0gesetzt, werden Thread-lokaler Bytecode und der spezialisierende Interpreter deaktiviert. Gilt nur für Builds, die mit--disable-gilkonfiguriert wurden.Siehe auch die Kommandozeilenoption
-X tlbc.Hinzugefügt in Version 3.14.
1.2.1. Variablen für den Debug-Modus¶
- PYTHONDUMPREFS¶
Wenn gesetzt, wird Python Objekte und Referenzzählungen ausgeben, die nach dem Herunterfahren des Interpreters noch lebendig sind.
Erfordert, dass Python mit der Build-Option
--with-trace-refskonfiguriert wurde.
- PYTHONDUMPREFSFILE¶
Wenn gesetzt, wird Python Objekte und Referenzzählungen ausgeben, die nach dem Herunterfahren des Interpreters noch lebendig sind, in eine Datei unter dem als Wert für diese Umgebungsvariable angegebenen Pfad.
Erfordert, dass Python mit der Build-Option
--with-trace-refskonfiguriert wurde.Hinzugefügt in Version 3.11.
- PYTHON_PRESITE¶
Wenn diese Variable auf ein Modul gesetzt ist, wird dieses Modul früh im Lebenszyklus des Interpreters importiert, bevor das Modul
siteausgeführt wird und bevor das Modul__main__erstellt wird. Daher wird das importierte Modul nicht als__main__behandelt.Dies kann verwendet werden, um Code früh während der Python-Initialisierung auszuführen.
Um ein Submodul zu importieren, verwenden Sie
package.moduleals Wert, wie in einer Importanweisung.Siehe auch die
-X presiteKommandozeilenoption, die Vorrang vor dieser Variablen hat.Benötigt Python, das mit der
--with-pydebugBuild-Option konfiguriert wurde.Hinzugefügt in Version 3.13.