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

启动
从 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 一起出问题。