Stilllegungen¶
Zur Entfernung vorgesehen in Python 3.15¶
Das Importsystem
Das Setzen von
__cached__für ein Modul, während__spec__.cachednicht gesetzt wird, ist veraltet. In Python 3.15 wird__cached__vom Import-System oder der Standardbibliothek nicht mehr gesetzt oder berücksichtigt. (gh-97879)Das Setzen von
__package__für ein Modul, während__spec__.parentnicht gesetzt wird, ist veraltet. In Python 3.15 wird__package__vom Import-System oder der Standardbibliothek nicht mehr gesetzt oder berücksichtigt. (gh-97879)
-
Die undokumentierte Funktion
ctypes.SetPointerType()ist seit Python 3.13 veraltet.
-
Die veraltete und selten genutzte
CGIHTTPRequestHandlerist seit Python 3.13 veraltet. Es gibt keinen direkten Ersatz. *Alles* ist besser als CGI, um einen Webserver mit einem Request-Handler zu verbinden.Das Flag
--cgifür die Kommandozeilenschnittstelle python -m http.server ist seit Python 3.13 veraltet.
-
Methode
load_module(): verwenden Sie stattdessenexec_module().
-
Die Funktion
getdefaultlocale()ist seit Python 3.11 veraltet. Ihre Entfernung war ursprünglich für Python 3.13 geplant (gh-90817), wurde aber auf Python 3.15 verschoben. Verwenden Sie stattdessengetlocale(),setlocale()undgetencoding(). (Beigetragen von Hugo van Kemenade in gh-111187.)
-
PurePath.is_reserved()ist seit Python 3.13 veraltet. Verwenden Sieos.path.isreserved(), um reservierte Pfade unter Windows zu erkennen.
-
java_ver()ist seit Python 3.13 veraltet. Diese Funktion ist nur für die Jython-Unterstützung nützlich, hat eine verwirrende API und wird weitgehend nicht getestet.
-
Das Argument check_home von
sysconfig.is_python_build()ist seit Python 3.12 veraltet.
-
RLock()wird in Python 3.15 keine Argumente mehr akzeptieren. Das Übergeben von Argumenten ist seit Python 3.14 veraltet, da die Python-Version keine Argumente zulässt, die C-Version jedoch beliebige Positions- oder Schlüsselwortargumente zulässt und alle ignoriert.
-
types.CodeType: Der Zugriff aufco_lnotabwar seit PEP 626 in 3.10 veraltet und sollte in 3.12 entfernt werden, erhielt aber erst in 3.12 eine ordnungsgemäßeDeprecationWarning. Kann in 3.15 entfernt werden. (Beigetragen von Nikita Sobolev in gh-101866.)
-
Die undokumentierte Schlüsselwortargument-Syntax für die Erstellung von
NamedTuple-Klassen (z. B.Point = NamedTuple("Point", x=int, y=int)) ist seit Python 3.13 veraltet. Verwenden Sie stattdessen die klassenbasierte Syntax oder die funktionale Syntax.Bei Verwendung der funktionalen Syntax von
TypedDicts ist es seit Python 3.13 veraltet, keinen Wert für den Parameter fields zu übergeben (TD = TypedDict("TD")) oderNonezu übergeben (TD = TypedDict("TD", None)). Verwenden Sie stattdessenclass TD(TypedDict): passoderTD = TypedDict("TD", {}), um ein TypedDict mit null Feldern zu erstellen.Der Dekorator
typing.no_type_check_decorator()ist seit Python 3.13 veraltet. Nach acht Jahren im Modultypingwurde er von keinem wichtigen Typ-Checker unterstützt.
wave:Die Methoden
getmark(),setmark()undgetmarkers()der KlassenWave_readundWave_writesind seit Python 3.13 veraltet.
-
load_module()ist seit Python 3.10 veraltet. Verwenden Sie stattdessenexec_module(). (Beigetragen von Jiahao Li in gh-125746.)
Vorschlag zur Entfernung in Python 3.16¶
Das Importsystem
Das Setzen von
__loader__für ein Modul, während gleichzeitig__spec__.loadernicht gesetzt wird, ist veraltet. In Python 3.16 wird__loader__vom Importsystem und der Standardbibliothek weder gesetzt noch berücksichtigt.
-
Der Formatcode
'u'(wchar_t) ist seit Python 3.3 in der Dokumentation und seit Python 3.13 zur Laufzeit veraltet. Verwenden Sie stattdessen den Formatcode'w'(Py_UCS4) für Unicode-Zeichen.
-
asyncio.iscoroutinefunction()ist veraltet und wird in Python 3.16 entfernt; verwenden Sie stattdesseninspect.iscoroutinefunction(). (Beigetragen von Jiahao Li und Kumar Aditya in gh-122875.)Das Richtliniensystem von
asyncioist veraltet und wird in Python 3.16 entfernt. Insbesondere sind die folgenden Klassen und Funktionen veraltet:Benutzer sollten
asyncio.run()oderasyncio.Runnermit loop_factory verwenden, um die gewünschte Event-Loop-Implementierung zu nutzen.Zum Beispiel, um
asyncio.SelectorEventLoopunter Windows zu verwendenimport asyncio async def main(): ... asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)
(Beigetragen von Kumar Aditya in gh-127949.)
-
Bitweise Inversion auf booleschen Typen,
~Trueoder~False, ist seit Python 3.12 veraltet, da sie überraschende und unintuitive Ergebnisse liefert (-2und-1). Verwenden Sie stattdessennot xfür die logische Negation eines Boole-Wertes. In dem seltenen Fall, dass Sie die bitweise Inversion der zugrunde liegenden Ganzzahl benötigen, konvertieren Sie explizit zuint(~int(x)).
-
Das Aufrufen der Python-Implementierung von
functools.reduce()mit function oder sequence als Schlüsselwortargumente ist seit Python 3.14 veraltet.
-
Die Unterstützung für benutzerdefinierte Logging-Handler mit dem Argument strm ist veraltet und soll in Python 3.16 entfernt werden. Definieren Sie Handler stattdessen mit dem Argument stream. (Beigetragen von Mariusz Felisiak in gh-115032.)
-
Gültige Erweiterungen beginnen mit einem Punkt oder sind leer für
mimetypes.MimeTypes.add_type(). Nicht-punktierte Erweiterungen sind veraltet und lösen in Python 3.16 einenValueErroraus. (Beigetragen von Hugo van Kemenade in gh-75223.)
-
Die Ausnahme
ExecErrorist seit Python 3.14 veraltet. Sie wurde seit Python 3.4 von keiner Funktion inshutilverwendet und ist nun ein Alias fürRuntimeError.
-
Die Methode
Class.get_methodsist seit Python 3.14 veraltet.
sys:Die Funktion
_enablelegacywindowsfsencoding()ist seit Python 3.13 veraltet. Verwenden Sie stattdessen die UmgebungsvariablePYTHONLEGACYWINDOWSFSENCODING.
-
Die Funktion
sysconfig.expand_makefile_vars()ist seit Python 3.14 veraltet. Verwenden Sie stattdessen das Argument vars vonsysconfig.get_paths().
-
Das undokumentierte und ungenutzte Attribut
TarFile.tarfileist seit Python 3.13 veraltet.
Zur Entfernung vorgesehen in Python 3.17¶
-
collections.abc.ByteStringist für die Entfernung in Python 3.17 geplant.Verwenden Sie
isinstance(obj, collections.abc.Buffer), um zur Laufzeit zu testen, obobjdas Buffer-Protokoll implementiert. Für die Verwendung in Typ-Annotationen verwenden Sie entwederBufferoder eine Union, die explizit die von Ihrem Code unterstützten Typen angibt (z. B.bytes | bytearray | memoryview).ByteStringsollte ursprünglich eine abstrakte Klasse sein, die als Obertyp für sowohlbytesals auchbytearraydient. Da die ABC jedoch nie Methoden hatte, wusste man durch die Prüfung, ob ein Objekt eine Instanz vonByteStringwar, nie etwas Nützliches über das Objekt. Andere gängige Buffer-Typen wiememoryviewwurden ebenfalls nie als Untertypen vonByteStringverstanden (weder zur Laufzeit noch von statischen Typ-Checkern).Siehe PEP 688 für weitere Details. (Beigetragen von Shantanu Jain in gh-91896.)
-
Vor Python 3.14 wurden alte Unions mit der privaten Klasse
typing._UnionGenericAliasimplementiert. Diese Klasse wird für die Implementierung nicht mehr benötigt, wurde aber zur Abwärtskompatibilität beibehalten und soll spätestens in Python 3.17 entfernt werden. Benutzer sollten dokumentierte Introspektionshilfen wietyping.get_origin()undtyping.get_args()verwenden, anstatt sich auf private Implementierungsdetails zu verlassen.typing.ByteString, das seit Python 3.9 veraltet ist, ist für die Entfernung in Python 3.17 geplant.Verwenden Sie
isinstance(obj, collections.abc.Buffer), um zur Laufzeit zu testen, obobjdas Buffer-Protokoll implementiert. Für die Verwendung in Typ-Annotationen verwenden Sie entwederBufferoder eine Union, die explizit die von Ihrem Code unterstützten Typen angibt (z. B.bytes | bytearray | memoryview).ByteStringsollte ursprünglich eine abstrakte Klasse sein, die als Obertyp für sowohlbytesals auchbytearraydient. Da die ABC jedoch nie Methoden hatte, wusste man durch die Prüfung, ob ein Objekt eine Instanz vonByteStringwar, nie etwas Nützliches über das Objekt. Andere gängige Buffer-Typen wiememoryviewwurden ebenfalls nie als Untertypen vonByteStringverstanden (weder zur Laufzeit noch von statischen Typ-Checkern).Siehe PEP 688 für weitere Details. (Beigetragen von Shantanu Jain in gh-91896.)
Zur Entfernung vorgesehen in Python 3.19¶
Zur Entfernung vorgesehen in zukünftigen Versionen¶
Die folgenden APIs werden in Zukunft entfernt, obwohl derzeit kein Datum für ihre Entfernung geplant ist.
-
Verschachtelte Argumentgruppen und verschachtelte gegenseitig ausschließende Gruppen sind veraltet.
Das Übergeben des undokumentierten Schlüsselwortarguments prefix_chars an
add_argument_group()ist nun veraltet.Der Typ-Konverter
argparse.FileTypeist veraltet.
-
Generatoren: Die Signatur
throw(type, exc, tb)undathrow(type, exc, tb)ist veraltet: verwenden Sie stattdessenthrow(exc)undathrow(exc), die Signatur mit einem einzigen Argument.Derzeit akzeptiert Python numerische Literale, denen unmittelbar Schlüsselwörter folgen, z. B.
0in x,1or x,0if 1else 2. Dies ermöglicht verwirrende und mehrdeutige Ausdrücke wie[0x1for x in y](was als[0x1 for x in y]oder[0x1f or x in y]interpretiert werden kann). Eine Syntaxwarnung wird ausgegeben, wenn dem numerischen Literal unmittelbar eines der Schlüsselwörterand,else,for,if,in,isundorfolgt. In einer zukünftigen Version wird dies in einen Syntaxfehler geändert. (gh-87999)Unterstützung für die Methode
__index__()und__int__(), die einen Nicht-Int-Typ zurückgibt: diese Methoden müssen eine Instanz einer strengen Unterklasse vonintzurückgeben.Unterstützung für die Methode
__float__(), die eine strenge Unterklasse vonfloatzurückgibt: diese Methoden müssen eine Instanz vonfloatzurückgeben.Unterstützung für die Methode
__complex__(), die eine strenge Unterklasse voncomplexzurückgibt: diese Methoden müssen eine Instanz voncomplexzurückgeben.Delegation von
int()an die Methode__trunc__().Das Übergeben einer komplexen Zahl als Argument real oder imag im Konstruktor
complex()ist nun veraltet; sie sollte nur als einzelnes Positionsargument übergeben werden. (Beigetragen von Serhiy Storchaka in gh-109218.)
calendar: Die Konstantencalendar.Januaryundcalendar.Februarysind veraltet und werden durchcalendar.JANUARYundcalendar.FEBRUARYersetzt. (Beigetragen von Prince Roshan in gh-103636.)codecs: Verwenden Sieopen()anstelle voncodecs.open(). (gh-133038)codeobject.co_lnotab: Verwenden Sie stattdessen die Methodecodeobject.co_lines().-
utcnow(): Verwenden Siedatetime.datetime.now(tz=datetime.UTC).utcfromtimestamp(): Verwenden Siedatetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC).
gettext: Der Pluralwert muss eine ganze Zahl sein.-
Der Parameter debug_override von
cache_from_source()ist veraltet: verwenden Sie stattdessen den Parameter optimization.
-
Schnittstelle des
EntryPoints-Tupels.Implizites
Nonebei Rückgabewerten.
logging: Die Methodewarn()ist seit Python 3.3 veraltet, verwenden Sie stattdessenwarning().mailbox: Die Verwendung von StringIO-Eingabe und Textmodus ist veraltet, verwenden Sie stattdessen BytesIO und Binärmodus.os: Aufruf vonos.register_at_fork()in einem Multithreading-Prozess.pydoc.ErrorDuringImport: Die Übergabe eines Tupelwerts für den Parameter exc_info ist veraltet, verwenden Sie stattdessen eine Ausnahmeinstanz.re: Für numerische Gruppennummern und Gruppennamen in regulären Ausdrücken werden nun strengere Regeln angewendet. Nur eine Sequenz von ASCII-Ziffern wird nun als numerische Referenz akzeptiert. Der Gruppenname in Byte-Mustern und Ersetzungszeichenfolgen darf nun nur ASCII-Buchstaben, Ziffern und Unterstriche enthalten. (Beigetragen von Serhiy Storchaka in gh-91760.)Module
sre_compile,sre_constantsundsre_parse.shutil: Das Parameter onerror vonrmtree()ist in Python 3.12 veraltet; verwenden Sie stattdessen den Parameter onexc.SSL-Optionen und -Protokolle
ssl.SSLContextohne Protokollargument ist veraltet.ssl.SSLContext:set_npn_protocols()undselected_npn_protocol()sind veraltet: verwenden Sie stattdessen ALPN.Optionen
ssl.OP_NO_SSL*Optionen
ssl.OP_NO_TLS*ssl.PROTOCOL_SSLv3ssl.PROTOCOL_TLSssl.PROTOCOL_TLSv1ssl.PROTOCOL_TLSv1_1ssl.PROTOCOL_TLSv1_2ssl.TLSVersion.SSLv3ssl.TLSVersion.TLSv1ssl.TLSVersion.TLSv1_1
Methoden von
threadingthreading.Condition.notifyAll(): verwenden Sienotify_all().threading.Event.isSet(): verwenden Sieis_set().threading.Thread.isDaemon(),threading.Thread.setDaemon(): verwenden Sie das Attributthreading.Thread.daemon.threading.Thread.getName(),threading.Thread.setName(): verwenden Sie das Attributthreading.Thread.name.threading.currentThread(): verwenden Siethreading.current_thread().threading.activeCount(): verwenden Siethreading.active_count().
Die interne Klasse
typing._UnionGenericAliaswird nicht mehr zur Implementierung vontyping.Unionverwendet. Um die Kompatibilität mit Benutzern dieser privaten Klasse zu erhalten, wird bis mindestens Python 3.17 ein Kompatibilitäts-Shim bereitgestellt. (Beigetragen von Jelle Zijlstra in gh-105499.)unittest.IsolatedAsyncioTestCase: Es ist veraltet, einen Wert zurückzugeben, der nichtNoneist, von einem Testfall.Veraltete Funktionen in
urllib.parse: stattdessenurlparse()splitattr()splithost()splitnport()splitpasswd()splitport()splitquery()splittag()splittype()splituser()splitvalue()to_bytes()
wsgiref:SimpleHandler.stdout.write()sollte keine Teil-Schreibvorgänge durchführen.xml.etree.ElementTree: Das Testen des Wahrheitswerts einesElementist veraltet. In einer zukünftigen Version wird dies immerTruezurückgeben. Bevorzugen Sie explizite Tests mitlen(elem)oderelem is not None.sys._clear_type_cache()ist veraltet: verwenden Sie stattdessensys._clear_internal_caches().
Stilllegungen der C-API¶
Zur Entfernung vorgesehen in Python 3.15¶
PyImport_ImportModuleNoBlock(): Verwenden Sie stattdessenPyImport_ImportModule().PyWeakref_GetObject()undPyWeakref_GET_OBJECT(): Verwenden Sie stattdessenPyWeakref_GetRef(). Das Projekt pythoncapi-compat kann verwendet werden, umPyWeakref_GetRef()unter Python 3.12 und älter zu erhalten.Typ
Py_UNICODEund MakroPy_UNICODE_WIDE: Verwenden Sie stattdessenwchar_t.PyUnicode_AsDecodedObject(): Verwenden Sie stattdessenPyCodec_Decode().PyUnicode_AsDecodedUnicode(): Verwenden Sie stattdessenPyCodec_Decode(); Beachten Sie, dass einige Codecs (z. B. „base64“) einen anderen Typ alsstrzurückgeben können, z. B.bytes.PyUnicode_AsEncodedObject(): Verwenden Sie stattdessenPyCodec_Encode().PyUnicode_AsEncodedUnicode(): Verwenden Sie stattdessenPyCodec_Encode(); Beachten Sie, dass einige Codecs (z. B. „base64“) einen anderen Typ alsbyteszurückgeben können, z. B.str.Python-Initialisierungsfunktionen, veraltet in Python 3.13
Py_GetPath(): Verwenden Sie stattdessenPyConfig_Get("module_search_paths")(sys.path).Py_GetPrefix(): Verwenden Sie stattdessenPyConfig_Get("base_prefix")(sys.base_prefix). Verwenden SiePyConfig_Get("prefix")(sys.prefix), wenn virtuelle Umgebungen behandelt werden müssen.Py_GetExecPrefix(): Verwenden Sie stattdessenPyConfig_Get("base_exec_prefix")(sys.base_exec_prefix). Verwenden SiePyConfig_Get("exec_prefix")(sys.exec_prefix), wenn virtuelle Umgebungen behandelt werden müssen.Py_GetProgramFullPath(): Verwenden Sie stattdessenPyConfig_Get("executable")(sys.executable).Py_GetProgramName(): Verwenden Sie stattdessenPyConfig_Get("executable")(sys.executable).Py_GetPythonHome(): Verwenden Sie stattdessenPyConfig_Get("home")oder die UmgebungsvariablePYTHONHOME.
Das Projekt pythoncapi-compat kann verwendet werden, um
PyConfig_Get()auf Python 3.13 und älter zu erhalten.Funktionen zur Konfiguration der Python-Initialisierung, veraltet in Python 3.11
PySys_SetArgvEx(): Setzen Sie stattdessenPyConfig.argv.PySys_SetArgv(): Setzen Sie stattdessenPyConfig.argv.Py_SetProgramName(): Setzen Sie stattdessenPyConfig.program_name.Py_SetPythonHome(): Setzen Sie stattdessenPyConfig.home.PySys_ResetWarnOptions(): Leeren Sie stattdessensys.warnoptionsundwarnings.filters.
Die API
Py_InitializeFromConfig()sollte stattdessen mitPyConfigverwendet werden.Globale Konfigurationsvariablen
Py_DebugFlag: Verwenden Sie stattdessenPyConfig.parser_debugoderPyConfig_Get("parser_debug").Py_VerboseFlag: Verwenden Sie stattdessenPyConfig.verboseoderPyConfig_Get("verbose").Py_QuietFlag: Verwenden Sie stattdessenPyConfig.quietoderPyConfig_Get("quiet").Py_InteractiveFlag: Verwenden Sie stattdessenPyConfig.interactiveoderPyConfig_Get("interactive").Py_InspectFlag: Verwenden Sie stattdessenPyConfig.inspectoderPyConfig_Get("inspect").Py_OptimizeFlag: Verwenden Sie stattdessenPyConfig.optimization_leveloderPyConfig_Get("optimization_level").Py_NoSiteFlag: Verwenden Sie stattdessenPyConfig.site_importoderPyConfig_Get("site_import").Py_BytesWarningFlag: Verwenden Sie stattdessenPyConfig.bytes_warningoderPyConfig_Get("bytes_warning").Py_FrozenFlag: Verwenden Sie stattdessenPyConfig.pathconfig_warningsoderPyConfig_Get("pathconfig_warnings").Py_IgnoreEnvironmentFlag: Verwenden Sie stattdessenPyConfig.use_environmentoderPyConfig_Get("use_environment").Py_DontWriteBytecodeFlag: Verwenden Sie stattdessenPyConfig.write_bytecodeoderPyConfig_Get("write_bytecode").Py_NoUserSiteDirectory: Verwenden Sie stattdessenPyConfig.user_site_directoryoderPyConfig_Get("user_site_directory").Py_UnbufferedStdioFlag: Verwenden Sie stattdessenPyConfig.buffered_stdiooderPyConfig_Get("buffered_stdio").Py_HashRandomizationFlag: Verwenden Sie stattdessenPyConfig.use_hash_seedundPyConfig.hash_seedoderPyConfig_Get("hash_seed").Py_IsolatedFlag: Verwenden Sie stattdessenPyConfig.isolatedoderPyConfig_Get("isolated").Py_LegacyWindowsFSEncodingFlag: Verwenden Sie stattdessenPyPreConfig.legacy_windows_fs_encodingoderPyConfig_Get("legacy_windows_fs_encoding").Py_LegacyWindowsStdioFlag: Verwenden Sie stattdessenPyConfig.legacy_windows_stdiooderPyConfig_Get("legacy_windows_stdio").Py_FileSystemDefaultEncoding,Py_HasFileSystemDefaultEncoding: Verwenden Sie stattdessenPyConfig.filesystem_encodingoderPyConfig_Get("filesystem_encoding").Py_FileSystemDefaultEncodeErrors: Verwenden Sie stattdessenPyConfig.filesystem_errorsoderPyConfig_Get("filesystem_errors").Py_UTF8Mode: Verwenden Sie stattdessenPyPreConfig.utf8_modeoderPyConfig_Get("utf8_mode"). (SiehePy_PreInitialize())
Die API
Py_InitializeFromConfig()sollte mitPyConfigverwendet werden, um diese Optionen zu setzen. OderPyConfig_Get()kann verwendet werden, um diese Optionen zur Laufzeit abzurufen.
Anstehende Entfernung in Python 3.18¶
Die folgenden privaten Funktionen sind veraltet und für die Entfernung in Python 3.18 geplant
_PyBytes_Join(): verwenden Sie stattdessenPyBytes_Join()._PyDict_GetItemStringWithError(): verwenden Sie stattdessenPyDict_GetItemStringRef()._PyDict_Pop(): verwenden Sie stattdessenPyDict_Pop()._PyLong_Sign(): verwenden Sie stattdessenPyLong_GetSign()._PyLong_FromDigits()und_PyLong_New(): verwenden Sie stattdessenPyLongWriter_Create()._PyThreadState_UncheckedGet(): verwenden Sie stattdessenPyThreadState_GetUnchecked()._PyUnicode_AsString(): verwenden Sie stattdessenPyUnicode_AsUTF8()._PyUnicodeWriter_Init(): Ersetzen Sie_PyUnicodeWriter_Init(&writer)durchwriter = PyUnicodeWriter_Create(0)._PyUnicodeWriter_Finish(): Ersetzen Sie_PyUnicodeWriter_Finish(&writer)durchPyUnicodeWriter_Finish(writer)._PyUnicodeWriter_Dealloc(): Ersetzen Sie_PyUnicodeWriter_Dealloc(&writer)durchPyUnicodeWriter_Discard(writer)._PyUnicodeWriter_WriteChar(): Ersetzen Sie_PyUnicodeWriter_WriteChar(&writer, ch)durchPyUnicodeWriter_WriteChar(writer, ch)._PyUnicodeWriter_WriteStr(): Ersetzen Sie_PyUnicodeWriter_WriteStr(&writer, str)durchPyUnicodeWriter_WriteStr(writer, str)._PyUnicodeWriter_WriteSubstring(): Ersetzen Sie_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)durchPyUnicodeWriter_WriteSubstring(writer, str, start, end)._PyUnicodeWriter_WriteASCIIString(): Ersetzen Sie_PyUnicodeWriter_WriteASCIIString(&writer, str)durchPyUnicodeWriter_WriteASCII(writer, str)._PyUnicodeWriter_WriteLatin1String(): Ersetzen Sie_PyUnicodeWriter_WriteLatin1String(&writer, str)durchPyUnicodeWriter_WriteUTF8(writer, str)._PyUnicodeWriter_Prepare(): (kein Ersatz)._PyUnicodeWriter_PrepareKind(): (kein Ersatz)._Py_HashPointer(): verwenden Sie stattdessenPy_HashPointer()._Py_fopen_obj(): verwenden Sie stattdessenPy_fopen().
Das Projekt pythoncapi-compat kann verwendet werden, um diese neuen öffentlichen Funktionen auf Python 3.13 und älter zu erhalten. (Beigetragen von Victor Stinner in gh-128863.)
Anstehende Entfernung in zukünftigen Versionen¶
Die folgenden APIs sind veraltet und werden entfernt, obwohl derzeit kein Termin für ihre Entfernung geplant ist.
Py_TPFLAGS_HAVE_FINALIZE: Seit Python 3.8 nicht mehr benötigt.PyErr_Fetch(): Verwenden Sie stattdessenPyErr_GetRaisedException().PyErr_NormalizeException(): Verwenden Sie stattdessenPyErr_GetRaisedException().PyErr_Restore(): Verwenden Sie stattdessenPyErr_SetRaisedException().PyModule_GetFilename(): Verwenden Sie stattdessenPyModule_GetFilenameObject().PyOS_AfterFork(): Verwenden Sie stattdessenPyOS_AfterFork_Child().PySlice_GetIndicesEx(): Verwenden Sie stattdessenPySlice_Unpack()undPySlice_AdjustIndices().PyUnicode_READY(): Seit Python 3.12 nicht mehr benötigt.PyErr_Display(): Verwenden Sie stattdessenPyErr_DisplayException()._PyErr_ChainExceptions(): Verwenden Sie stattdessen_PyErr_ChainExceptions1().PyBytesObject.ob_shashmember: Rufen Sie stattdessenPyObject_Hash()auf.Thread Local Storage (TLS) API
PyThread_create_key(): Verwenden Sie stattdessenPyThread_tss_alloc().PyThread_delete_key(): Verwenden Sie stattdessenPyThread_tss_free().PyThread_set_key_value(): Verwenden Sie stattdessenPyThread_tss_set().PyThread_get_key_value(): Verwenden Sie stattdessenPyThread_tss_get().PyThread_delete_key_value(): Verwenden Sie stattdessenPyThread_tss_delete().PyThread_ReInitTLS(): Seit Python 3.7 nicht mehr benötigt.