notepad++ 运行 python 失败主因是系统环境配置问题。需确保 path 正确添加 python 路径并重启 notepad++;nppexec 闪退加 & pause 或用 npp_console 1;中文路径建议改英文,否则换 python script 插件。

Notepad++ 本身不运行 Python,它只是调用系统命令;所有“运行失败”问题,90% 出在 PATH、编码或路径解析上,而不是 Notepad++ 设置本身。
cmd 里 python --version 报错,Notepad++ 就一定跑不了
这是最底层的依赖问题。NppExec、Run 菜单、Python Script 插件全都要靠系统能识别 python 命令。
- 先在 CMD 或 PowerShell 里敲
python --version,如果提示“不是内部或外部命令”,说明 Windows 根本找不到 Python - 重装 Python 时务必勾选
Add Python to PATH(安装器最下方小框) - 若已安装但漏勾,需手动把两个路径加进系统环境变量
PATH:C:\Users\XXX\AppData\Local\Programs\Python\Python311\和C:\Users\XXX\AppData\Local\Programs\Python\Python311\Scripts\ - 改完 PATH 后,必须关闭并重启 Notepad++——它启动时就缓存了环境变量,只重启 CMD 没用
NppExec 执行后控制台一闪而过,根本看不到输出
这不是脚本没运行,而是 CMD 窗口执行完立刻退出。NppExec 默认不驻留终端,尤其对无 input() 的短脚本。
- 最直接解法:在命令末尾加
& pause,例如:python "$(FULL_CURRENT_PATH)" & pause - 更规范的做法是启用 NppExec 内置控制台:
npp_console 1 | python "$(FULL_CURRENT_PATH)" - 如果脚本含中文输出却显示乱码或
\xe4\xbd\xa0,别改文件头编码声明,要切终端编码:cmd /c chcp 65001 >nul && python "$(FULL_CURRENT_PATH)" - 遇到
input()卡住?优先加-u参数:python -u "$(FULL_CURRENT_PATH)",否则输出缓冲可能让提示不显示
用 Run → Run 配置 F5 快捷键,为什么总提示找不到文件
核心陷阱在于路径宏和空格处理。Notepad++ 的 $(FULL_CURRENT_PATH) 自带双引号,但如果你硬写成 python C:\my script\test.py(没引号、含空格),CMD 就会把空格当分隔符,只传 C:\my 给 Python。
- 正确写法只有一条:
python -u "$(FULL_CURRENT_PATH)"(引号已由宏提供,-u防缓冲) - 想传命令行参数?改成:
python -u "$(FULL_CURRENT_PATH)" $(CMDLINE),运行时弹窗里填arg1 arg2即可 - 千万别用
$(FILE_NAME)或$(NAME_PART)——它们不含路径,一旦当前工作目录不是文件所在目录,import就报ModuleNotFoundError - 保存命令时一定要点
Save,名字随便起(如Python (UTF-8)),否则关掉窗口就丢了
中文路径下 NppExec 直接崩溃或报错
NppExec 底层用 ANSI 编码调用 CMD,在 Win10/11 上遇到 UTF-8 路径(比如 D:\我的项目\test.py)会解码失败,表现为命令不执行、路径变成乱码、甚至插件无响应。
- 没有绕过方案,唯一可靠做法:把 Python 文件放到纯英文路径下,例如
D:\pyproj\test.py - 不要试图用
chcp 65001修复路径解码——它只影响字符输出编码,不影响 CMD 对命令行参数本身的字节解析 - 如果必须用中文路径,换用
Python Script插件(通过插件管理器安装),它走的是 Python 内部 API,不经过 CMD 字符串解析 - 注意:
Python Script插件需要单独配置解释器路径,且不支持直接传参,适合轻量脚本调试
最常被忽略的一点:所有路径相关问题(闪退、找不到模块、中文乱码)都优先查 $(FULL_CURRENT_PATH) 实际展开成什么——在 NppExec 控制台里先执行 echo "$(FULL_CURRENT_PATH)",眼见为实,比猜强十倍。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











