API 环境
版本信息

Sublime Text 中的插件是位于 插件包 根目录下的 Python 文件。以下文档描述了运行插件的 Python 环境。

概述🔗

Sublime Text 在一个独立于主编辑器 UI 的进程中运行插件。此进程运行一个名为 plugin_host 的可执行文件。

在单独的进程中运行插件可确保整个编辑器不会因编写不良的插件而崩溃。如果插件确实导致 plugin_host 崩溃,用户仍然可以在重新启动 Sublime Text 之前保存他们的工作。

所有插件都在单个 plugin_host 进程中运行,并共享单个 Python 环境。每个插件都作为以插件包命名的模块的子模块加载。例如,文件 MyPackage/my_plugin.py 中的插件将作为 Python 模块 MyPackage.my_plugin 加载。

plugin_host 进程包含 Python 编程语言的嵌入式版本,并向插件公开了一个 APIplugin_host 可执行文件始终使用其自身的嵌入式 Python 版本,即使最终用户在其机器上安装了 Python。

Python 版本🔗

默认情况下,所有插件都使用 Python 3.3.6 运行,但 User 插件包除外,它始终使用最新的 Python。*Sublime Text 构建的 Python 3.3.6 包含从 Python 3.4 反向移植的一些补丁,用于修复 Unicode 路径问题以及在 64 位版本的 Windows 上使用 ctypes 模块时的崩溃问题。*

从内部版本 4050 开始,插件也可以使用 Python 3.8 运行。Python 3.8 对语言进行了许多改进,具有更高的性能,并继续获得 Python 软件基金会的支持和错误修复。

4050

选择 Python 版本🔗

为了提供向后兼容性,Sublime Text 4050 将继续使用 Python 3.3 运行所有插件。

任何希望使用 Python 3.8 的插件包都必须在插件包的根目录中创建一个名为 .python-version 的文件。此文件应包含文本 3.33.8 以选择要使用的 Python 版本。*如果名为 .python-version 的文件不存在,或者它包含除 3.8 以外的任何值,则将使用 Python 3.3。*

插件包中的所有插件都将使用相同版本的 Python。*任何在 Sublime Text 的旧版本中加载的、.python-version 文件包含 3.8 的插件包都将尝试使用 Python 3.3 运行插件。*

4050

模块🔗

plugin_host 中的 Python 环境包含 Python 标准库 中的所有模块,但以下模块除外:

  • audioop

  • crypt(Linux 上没有)

  • curses

  • cProfile(Linux 上没有)<4050

  • fpectl 4050 3.3

  • readline

  • lzma 4050 3.3

  • msilib

  • nis

  • ossaudiodev

  • resource 4050 3.3

  • spwd

  • syslog

  • test

  • tkinter

  • turtle

  • wave

预安装的包🔗

以下软件包预装在 Python 3.3 和 3.8 环境中

  • certifi:用于 urllib 的 SSL 根证书集合

4050