跳转到主要内容

Pending removal in Python 3.15

  • The import system:
    • Setting __cached__ on a module while failing to set __spec__.cached <importlib.machinery.ModuleSpec.cached> is deprecated. In Python 3.15, __cached__ will cease to be set or take into consideration by the import system or standard library. (97879)
  • ctypes:
    • The undocumented !ctypes.SetPointerType function has been deprecated since Python 3.13.
  • http.server:
    • The obsolete and rarely used !CGIHTTPRequestHandler has been deprecated since Python 3.13. No direct replacement exists. Anything is better than CGI to interface a web server with a request handler.
    • The !--cgi flag to the python -m http.server command-line interface has been deprecated since Python 3.13.
  • importlib:
    • load_module() method: use exec_module() instead.
  • pathlib:
    • !.PurePath.is_reserved has been deprecated since Python 3.13. Use os.path.isreserved to detect reserved paths on Windows.
  • platform:
    • !platform.java_ver has been deprecated since Python 3.13. This function is only useful for Jython support, has a confusing API, and is largely untested.
  • sysconfig:
    • The check_home argument of sysconfig.is_python_build has been deprecated since Python 3.12.
  • threading:
    • ~threading.RLock will take no arguments in Python 3.15. Passing any arguments has been deprecated since Python 3.14, as the Python version does not permit any arguments, but the C version allows any number of positional or keyword arguments, ignoring every argument.
  • types:
    • types.CodeType: Accessing !codeobject.co_lnotab was deprecated in 626 since 3.10 and was planned to be removed in 3.12, but it only got a proper DeprecationWarning in 3.12. May be removed in 3.15. (Contributed by Nikita Sobolev in 101866.)
  • typing:
    • The undocumented keyword argument syntax for creating ~typing.NamedTuple classes (for example, Point = NamedTuple("Point", x=int, y=int)) has been deprecated since Python 3.13. Use the class-based syntax or the functional syntax instead.
    • When using the functional syntax of ~typing.TypedDicts, failing to pass a value to the fields parameter (TD = TypedDict("TD")) or passing None (TD = TypedDict("TD", None)) has been deprecated since Python 3.13. Use class TD(TypedDict): pass or TD = TypedDict("TD", {}) to create a TypedDict with zero field.
    • The !typing.no_type_check_decorator decorator function has been deprecated since Python 3.13. After eight years in the typing module, it has yet to be supported by any major type checker.
  • !sre_compile, !sre_constants and !sre_parse modules.
  • wave:
    • The getmark(), setmark() and getmarkers() methods of the ~wave.Wave_read and ~wave.Wave_write classes have been deprecated since Python 3.13.
  • zipimport:
    • !zipimport.zipimporter.load_module has been deprecated since Python 3.10. Use ~zipimport.zipimporter.exec_module instead. (125746.)