简体中文
English 简体中文 繁體中文
Methodox 首页

Misp

Misp(Methodox Interactive Spy)是 SteelPython 随附的 IDE:一个多文件 Python 编辑器,带有调试器、工作区资源管理器,以及虚拟环境和包的管理功能。它是一个小巧、快速的桌面程序;开始使用前无需进行任何配置。

Misp 正在调试 inventory.py:执行在循环内第 18 行的断点处暂停,Debug 面板显示调用堆栈(total_value,由模块调用)以及局部变量 item、items 和 total

启动

从 SteelPython 的文件夹运行 Misp.exe。若要直接打开某个内容,请在命令行中传入:Misp.exe C:\Projects\inventory 会将一个文件夹作为工作区打开,Misp.exe script.py 会打开一个文件。Misp 会记住上一个工作区、最近打开的文件和你的主题。

窗口左侧是 Explorer(资源管理器,显示工作区文件夹),中间是编辑器(每个文件一个标签页),下方是 Output 和 Debug 面板。

编辑

编辑器会高亮 Python 语法,在你输入时自动缩进,并支持查找和替换、转到行、注释所选行,以及单词补全(关键字、内置名称和文件中的名称)。

按键 功能
Ctrl+N / Ctrl+O / Ctrl+Shift+O 新建文件 / 打开文件 / 将文件夹作为工作区打开
Ctrl+S / Ctrl+Shift+S / Ctrl+W 保存 / 另存为 / 关闭文件
Ctrl+F / Ctrl+H / Ctrl+G 查找 / 替换 / 转到行
Ctrl+/ 注释或取消注释所选行
Ctrl+Space 补全单词
Ctrl+Shift+E / Ctrl+J / Ctrl+Shift+P 显示资源管理器 / 输出和调试面板 / 包面板

运行

Ctrl+F5 会在不使用调试器的情况下运行当前文件。Misp 会先保存你打开的文件,然后在工作区文件夹中,用工具栏中选定的解释器运行该文件。程序打印的内容会显示在 Output 面板中;该面板底部的输入行会把输入发送给程序,因此 input() 可以正常使用。Shift+F5 可以随时停止程序,即使程序卡在循环中也可以。

调试

按键 功能
F9 在当前行切换断点(或单击边距)
F5 开始调试;暂停时继续运行
F10 / F11 / Shift+F11 单步跳过 / 单步进入 / 单步跳出
F6 在程序运行到的任何位置暂停它
Shift+F5 / Ctrl+Shift+F5 停止 / 重新启动

Run > Conditional Breakpoint... 会设置一个仅在某个 Python 表达式为真时才暂停的断点,例如 item.quantity > 1000。工具栏中的 Stop on entry 会让程序启动后暂停在第一行;在没有程序运行时按 F10 或 F11 也是如此。

程序暂停时,当前行会被高亮,Debug 面板会显示:

  • 调用堆栈——选择一个帧即可查看其源代码和变量;
  • 所选帧的变量,包括局部变量和全局变量,可以展开查看列表、字典和对象的内容;
  • 监视表达式,可以是任意 Python 表达式,每次程序暂停时都会在所选帧中求值。

没有被任何代码捕获的异常会在打印回溯之后,让程序停在引发异常的帧中,这样你仍然可以查看导致异常的变量。继续运行即可结束程序。

解释器与虚拟环境

工具栏中的 Interpreter 框列出 Misp 随附的 SteelPython,以及工作区文件夹中的虚拟环境(.venv、venv,或任何包含 pyvenv.cfg 的文件夹)。Misp 会为每个工作区记住所做的选择。

  • + venv(或 Environment > Create Virtual Environment...)会在工作区中创建一个环境并选中它。
  • Packages(Ctrl+Shift+P)列出所选解释器的包,并用 pip 安装、升级和卸载它们,同时显示 pip 工作时的输出。对于没有 pip 的环境,会提供 ensurepip 来安装 pip。
  • Environment > Open SteelPython REPL 会在控制台窗口中打开所选解释器的交互式提示符。

关于 pip 和 venv 的作用,请参阅 包与环境。

Misp 将内容保存在哪里

你的设置(主题、上一个工作区、最近打开的文件、每个工作区的解释器)保存在 %APPDATA%\SteelPython\Misp\settings.json 中。程序总是在单独的 spy 进程中运行,因此崩溃或挂起的程序永远不会连带 Misp 一起出问题。