Pending removal in Python 3.14

  • 导入系统:

    • 当设置 __spec__.loader 失败时在模块上设置 __loader__ 的做法已被弃用。 在 Python 3.14 中,__loader__ 将不会再被设置或是被导入系统或标准库纳入考虑。

  • argparse: argparse.BooleanOptionalActiontype, choicesmetavar 形参已被弃用并将在 3.14 中移除。 (由 Nikita Sobolev 在 gh-92248 中贡献。)

  • ast: 以下特性自 Python 3.8 起已在文档中声明弃用,现在当运行时如果它们被访问或使用时将发出 DeprecationWarning,并将在 Python 3.14 中移除:

    • ast.Num

    • ast.Str

    • ast.Bytes

    • ast.NameConstant

    • ast.Ellipsis

    请改用 ast.Constant。 (由 Serhiy Storchaka 在 gh-90953 中贡献。)

  • asyncio:

    • The child watcher classes asyncio.MultiLoopChildWatcher, asyncio.FastChildWatcher, asyncio.AbstractChildWatcher and asyncio.SafeChildWatcher are deprecated and will be removed in Python 3.14. (Contributed by Kumar Aditya in gh-94597.)

    • asyncio.set_child_watcher(), asyncio.get_child_watcher(), asyncio.AbstractEventLoopPolicy.set_child_watcher() and asyncio.AbstractEventLoopPolicy.get_child_watcher() are deprecated and will be removed in Python 3.14. (Contributed by Kumar Aditya in gh-94597.)

    • 现在默认事件循环策略的 get_event_loop() 方法在当前事件循环未设置并决定创建一个时将发出 DeprecationWarning。 (由 Serhiy Storchaka 和 Guido van Rossum 在 gh-100160 中贡献。)

  • collections.abc: Deprecated collections.abc.ByteString. Prefer Sequence or Buffer. For use in typing, prefer a union, like bytes | bytearray, or collections.abc.Buffer. (Contributed by Shantanu Jain in gh-91896.)

  • email: 已弃用 email.utils.localtime() 中的 isdst 形参。 (由 Alan Williams 在 gh-72346 中贡献。)

  • importlib.abc 中已弃用的类:

    • importlib.abc.ResourceReader

    • importlib.abc.Traversable

    • importlib.abc.TraversableResources

    使用 importlib.resources.abc 类代替:

    (由 Jason R. Coombs 和 Hugo van Kemenade 在 gh-93963 中贡献。)

  • itertools 具有对 copy, deepcopy 和 pickle 等操作的未写入文档的、低效的、历史上充满问题的且不稳定的支持。 这将在 3.14 中移除以显著减少代码量和维护负担。 (由 Raymond Hettinger 在 gh-101588 中贡献。)

  • multiprocessing: 默认的启动方法在目前默认使用 'fork' 的 Linux, BSD 和其他非 macOS POSIX 平台上将改为更安全的方法 (gh-84559)。 为此添加运行时警告将带来糟糕的体验因为大部分代码并不会关心这个问题。 当你的代码 需要 'fork' 时请使用 get_context()set_start_method() API 来显式地指明。 参见 上下文和启动方法

  • pathlib: is_relative_to()relative_to(): 传入额外参数的做法已被弃用。

  • pkgutil: pkgutil.find_loader() and :func:!pkgutil.get_loader` now raise DeprecationWarning; use importlib.util.find_spec() instead. (Contributed by Nikita Sobolev in gh-97850.)

  • pty:

  • sqlite3:

  • types.CodeType: 访问 co_lnotab 的做法自 3.10 起已在 PEP 626 中被弃用并曾计划在 3.12 中移除,但实际上在 3.12 中仅设置了 DeprecationWarning。 可能会在 3.14 中移除。 (由 Nikita Sobolev 在 gh-101866 中贡献。)

  • typing: typing.ByteString, deprecated since Python 3.9, now causes a DeprecationWarning to be emitted when it is used.

  • urllib: urllib.parse.Quoter 已被弃用:它不应被作为公有 API。 (由 Gregory P. Smith 在 gh-88168 中贡献。)