notepad++“一键测试”失败主因是系统找不到解释器、路径未加引号或环境变量未生效;须先在cmd验证解释器,添加path后重启notepad++,使用$(full_current_path)并加双引号,配合chcp 65001和pythonioencoding确保编码统一。

Notepad++ 本身不执行任何代码,所谓“一键测试”只是调用系统命令行运行外部程序;失败90%是因为路径没找对、变量写错、或输出被缓冲卡住,不是菜单配置问题。
为什么 F5 运行总提示“不是内部或外部命令”
根本原因是 Windows 找不到你写的解释器(如 python、php、g++),而不是 Notepad++ 设置错了。必须先在 CMD 中验证:
- 打开 CMD,输入
python --version或php -v或g++ --version—— 能正常输出才算过关 - 如果报错,说明对应程序没加进系统
PATH,得手动把安装目录(如C:\php、C:\MinGW\bin)加进去 - 改完
PATH后,必须关闭并重启 Notepad++,它启动时就缓存了环境变量,只重启 CMD 没用
$(FULL_CURRENT_PATH) 必须带双引号,且不能写成 %FULL_CURRENT_PATH%
NppExec 和 Run 菜单都只认 $(FULL_CURRENT_PATH) 这种括号语法,%FULL_CURRENT_PATH% 是旧版宏,完全不生效。更关键的是:路径里只要含空格或中文,不加引号就会被 CMD 截断。
- ✅ 正确:
python -u "$(FULL_CURRENT_PATH)" - ❌ 错误:
python %FULL_CURRENT_PATH%(变量不展开) - ❌ 错误:
python $(FULL_CURRENT_PATH)(空格导致解析失败) - 传参写法:
python -u "$(FULL_CURRENT_PATH)" $(CMDLINE),运行时弹窗填arg1 arg2
控制台一闪而过?不是脚本没跑,是窗口关太快
默认情况下,cmd /c 执行完立刻退出,尤其对无 input() 的短脚本。别急着改代码,先解决显示问题:
- 调试阶段用:
cmd /k python -u "$(FULL_CURRENT_PATH)"(/k保留窗口) - 正式运行用:
cmd /c python -u "$(FULL_CURRENT_PATH)" & pause(& pause阻塞退出) - 如果脚本含
input()却卡住,加-u参数强制无缓冲输出,否则提示可能不显示 - NppExec 用户可直接用:
npp_console 1 | python -u "$(FULL_CURRENT_PATH)",走内置控制台更稳
中文乱码、subprocess 失败、import 报错——全因工作目录和编码错位
Notepad++ 默认以文件所在目录为当前工作目录,但很多脚本依赖相对路径(比如 import utils 或 open("config.json"))。同时,Windows 控制台默认用 GBK,Python 3 默认 UTF-8,不统一就乱码。
- 确保文件已保存(未保存的缓冲区没有真实路径,
$(FULL_CURRENT_PATH)为空) - 避免用
$(FILE_NAME)或$(NAME_PART),它们不含路径,import很容易报ModuleNotFoundError - 加
chcp 65001切换控制台为 UTF-8:chcp 65001 & python -u "$(FULL_CURRENT_PATH)" - 设环境变量防 subprocess 编码冲突:
set PYTHONIOENCODING=utf-8 & python -u "$(FULL_CURRENT_PATH)"
最易忽略的一点:所有命令保存后必须点 Save,名字随便起(如 Run Python (UTF-8)),否则关掉窗口就丢了;快捷键绑定也得手动测试是否真生效,Notepad++ 不提示冲突。











