想要在 Notepad++ 中一键运行 Python 脚本,最主流的方法是利用自带的“运行”功能(F5)或安装 NppExec 插件。直接按下 F5 并在弹出的窗口中输入命令
cmd /k python "$(FULL_CURRENT_PATH)" & PAUSE & EXIT保存为快捷键,即可实现一键弹出 CMD 窗口运行代码。如果希望执行结果直接显示在编辑器底部分屏,则需要通过插件管理器安装 NppExec 并配置对应脚本。很多新手配置失败,绝大多数是因为未将 Python 安装路径添加至 Windows 系统环境变量,或文件路径中包含未加引号的空格。
对于习惯轻量级开发的程序员或正在学习基础语法的初学者来说,如何在 Notepad++ 中一键运行 Python 脚本是一个绕不开的高频需求。原生状态下,Notepad++ 只是一个纯文本编辑器,写完代码后,通常需要手动打开命令提示符(CMD),使用 cd 命令切换目录,再输入 python filename.py 来执行。这种频繁的窗口切换极大地降低了编码效率。通过本文的步骤解析与实际排错经验,你可以根据自己的开发习惯,在两分钟内搭建起极其流畅的单文件执行环境。

快速判断:两种一键运行 Python 方法的区别与选择
在动手配置之前,先要明确你更喜欢哪种代码执行反馈方式。下方表格对比了 Notepad++ 中两种主流执行配置方案的核心区别。通过该表,你可以快速挑选出最适合自己日常工作流的操作路径。
| 配置方法 | 结果输出位置 | 交互能力(如 input 函数) | 适用场景 |
|---|---|---|---|
| 系统原生运行 (F5) | 弹出独立的 CMD 黑窗口 | 完美支持,可随时输入参数 | 经常需要与终端交互、测试爬虫脚本 |
| NppExec 插件 | 编辑器底部的内嵌控制台 | 支持有限,容易卡死假死 | 编写数据处理脚本、追求 IDE 一体化体验 |
如果你主要处理不需要复杂键盘交互的自动化脚本,NppExec 提供的底部控制台能让你拥有类似 PyCharm 的沉浸式体验。但如果你的代码包含大量的 input() 请求,弹窗式的 CMD 运行会更加稳定可靠。
步骤详解:配置 Notepad++ 一键运行 Python 脚本
方法一:利用自带“运行”功能(无须安装插件)
这是最简单、最不易出错的方法。它直接调用 Windows 系统的命令提示符,兼容性极高。
- 在 Notepad++ 中打开或新建一个
.py文件,写上几行测试代码(如print("Hello World"))。 - 按下键盘上的
F5键,或点击顶部菜单栏的运行 (Run) -> 运行 (Run…)。 - 在弹出的对话框输入框中,准确复制并粘贴以下完整命令:
cmd /k python "$(FULL_CURRENT_PATH)" & PAUSE & EXIT - 不要急着点运行,点击左下角的保存 (Save…)。
- 在弹出的快捷键设置窗口中,为这个操作命名(例如命名为
Run Python),并在下方勾选你顺手的组合键(例如Ctrl + Shift + P)。 - 点击确定后,以后每次写完代码,只需按下你设置的快捷键,即可一键呼出 CMD 并看到运行结果。
命令原理解析: 这里的 cmd /k 表示打开终端并执行后续命令;"$(FULL_CURRENT_PATH)" 是 Notepad++ 的内置环境变量,代表当前代码文件的绝对路径;& PAUSE 是为了让程序运行完后暂停,防止黑窗口一闪而过;& EXIT 则是按任意键后自动关闭窗口。

方法二:使用 NppExec 插件实现内嵌控制台执行
如果你觉得弹出的黑窗口很突兀,希望将运行结果直接输出在编辑器下方,就需要借助 NppExec 插件。为了保障插件环境的安全稳定,强烈建议定期访问notepad++中文官网更新主程序至最新正式版,避免因版本过旧导致插件管理器无法连接官方源。
- 点击顶部菜单栏的插件 (Plugins) -> 插件管理 (Plugins Admin…)。
- 在搜索框中输入
NppExec,勾选查找到的插件,点击右上角的安装 (Install),软件会自动重启。 - 重启后,按下快捷键
F6(或在菜单栏选择 插件 -> NppExec -> Execute…)。 - 在弹出的执行窗口中,输入以下三行脚本:
npp_save cd "$(CURRENT_DIRECTORY)" python "$(FILE_NAME)" - 点击 Save… 并将其命名为
Python Run。 - 点击 OK,你会看到编辑器底部弹出一个控制台,并显示了代码的运行结果。
很多教程容易忽略的细节是第一行的 npp_save。它的作用是在执行脚本前自动保存当前文件。如果没有这行命令,每次你修改了代码忘记保存直接运行,控制台输出的永远是上一次的旧结果,这个细节能帮你避开很多“代码改了却没生效”的诡异排错坑。
如果你想进一步将编辑器武装成媲美 IDE 的轻量级开发利器,除了 NppExec 之外,还可以参考我们整理的Notepad++写Python代码的极致配置指南,对代码高亮、自动补全等进阶功能进行深度调优。
实际使用场景排错:为什么配置后点击运行会报错?
在实际操作中,配置完快捷键一键运行后立刻遭遇报错是非常普遍的现象。以下列举了最常见的失败原因及解决办法。
报错现象一:提示 “python” 不是内部或外部命令
原因与排错:这是绝大多数新手会踩的坑。说明你的电脑系统根本不知道 python 这个指令对应哪个程序。必须将 Python 的安装目录(以及其内部的 Scripts 文件夹)添加到系统的“环境变量 PATH”中。 解决方法:按下 Win 键,搜索“环境变量”,打开配置面板,在系统变量的 Path 中新建两行,分别填入你安装 Python 的根目录及 Scripts 目录。配置完成后,必须彻底关闭并重启 Notepad++,新配置的环境变量才会生效。
报错现象二:路径包含空格导致系统找不到指定文件
原因与排错:如果你的代码保存在 D:\My Projects\test.py。当不加双引号传参时,CMD 遇到空格会自动截断,尝试去执行 D:\My,从而直接报错。 细节提醒:回头检查你在 F5 运行框中输入的命令。必须确保 $(FULL_CURRENT_PATH) 外面包裹了英文状态下的双引号 ""。这也是为什么我们提供的命令模板中强制加入了双引号的原因。
风险提醒:NppExec 遇到死循环或 input 函数假死
在使用 NppExec 控制台时,风险提醒 / 注意事项在于它对标准输入流(stdin)的拦截并不像原生 CMD 那么完美。如果你的 Python 脚本中包含 while True 的无延迟死循环,或者包含等待用户输入的 input("请输入:"),NppExec 控制台可能会彻底卡死,导致整个编辑器无响应。遇到这种情况,通常只能通过系统任务管理器强制结束 Notepad++ 进程,未保存的数据可能会丢失。对于包含大量交互请求的脚本,务必换回 F5 原生 CMD 的执行方式。

Checklist:一键运行环境配置自检清单
遇到代码跑不通时,请顺着以下检查清单逐一排除:
- [ ] 是否已在系统中正确安装了 Python 解释器?
- [ ] 是否已将 Python 路径添加至操作系统的全局环境变量?
- [ ] 修改环境变量后,是否已将 Notepad++ 彻底关闭并重新启动?
- [ ] 配置命令中的标点符号(如
&、"")是否全部在英文半角状态下输入? - [ ] 当前正在编辑的代码文件,是否已经保存并具有
.py后缀后缀名? - [ ] 使用 NppExec 时,脚本顶部是否已添加
npp_save指令以确保实时保存?
FAQ:常见问题解答
H3: 配置了快捷键,但按下去没有任何反应怎么修复?
这通常是因为你自定义的快捷键(如 Ctrl+Shift+P)与 Notepad++ 原本的其他功能或系统级快捷键发生了冲突。请在顶部菜单栏选择“宏(Macro) -> 管理快捷键(Modify Shortcut)”,在弹出的对话框中找到你命名的运行命令,将其修改为其他不常用的冷门按键组合。
H3: NppExec 底部控制台输出中文出现乱码怎么办?
这是因为 Python 默认采用 UTF-8 编码输出,而早期版本 Windows 控制台默认是 GBK。可以在 NppExec 的配置代码最上方加入一行 set console_encoding = UTF-8,并在 Notepad++ 的“设置 -> 首选项 -> 新建”中,确保新建文件格式默认勾选了“UTF-8”。具体编码表现以当前版本实际显示为准。
H3: 能否在 Notepad++ 中一键运行使用虚拟环境的 Python 脚本?
可以。但这要求你修改原本简单的执行命令,将全路径写死。例如在 F5 执行框中,你需要将通用的 python 替换为你虚拟环境的具体路径,如 cmd /k "D:\envs\myenv\Scripts\python.exe" "$(FULL_CURRENT_PATH)" & PAUSE & EXIT。
H3: 运行命令里的 $(FULL_CURRENT_PATH) 到底是什么意思?
这是 Notepad++ 提供的一种宏变量(Macro Variable)。在软件向外部传递参数时,它会自动将这串字符替换为你当前正在编辑的这个文件的绝对物理路径。如果你在文件未保存(标签页显示为 new 1)时使用它,系统就会报错,因为它目前还不存在于硬盘上。
参考来源
本文为站点内容团队根据实际开发场景及代码测试经验整理,相关插件菜单层级与系统反馈以产品当前版本显示为准。