在notepad++中正确添加python运行命令需用绝对路径如c:\python39\python.exe "$(full_current_path)",加双引号防空格截断,末尾加& pause防闪退,中文输出需cmd /c chcp 65001 >nul && 前缀,命令名禁用中文及特殊字符,须通过“设置→管理快捷键→运行→添加”保存至shortcuts.xml并重启生效。

怎么在 Notepad++ 里正确添加 Python 运行命令
直接改 run 菜单里的命令,不配环境变量或写死路径,大概率点一下就闪退或报 python is not recognized。根本原因是 Notepad++ 默认不继承系统 PATH,它调用的是自己的 shell 环境。
- 推荐用绝对路径调用解释器,比如
C:\Python39\python.exe "$(FULL_CURRENT_PATH)",别写python "$(FULL_CURRENT_PATH)" - 如果用的是 Anaconda 或虚拟环境,路径得指向具体
python.exe,不是Scripts\activate.bat—— 后者不能直接执行脚本 -
"$(FULL_CURRENT_PATH)"必须加英文双引号,否则路径带空格(比如C:\My Scripts\test.py)会截断 - 想看到输出窗口不闪退,末尾加
& pause(Windows)或; read -p "Press enter to continue"(WSL),但注意这会让 Notepad++ 等待输入,不是所有场景都适用
为什么“运行”菜单里新加的命令不显示或点了没反应
Notepad++ 的自定义命令存在两个隐藏约束:一是命令字符串不能含中文或全角符号(包括空格、括号),二是必须保存到 shortcuts.xml 并重启才生效——改完菜单界面不等于写入配置文件。
- 新增命令必须通过
设置 → 管理快捷键 → 运行 → 添加,手动编辑shortcuts.xml容易格式错乱,尤其&要写成& - 命令名里不要用
→、|、【】这类字符,会被解析失败;建议纯英文 + 下划线,比如Run_Python39 - 如果用了相对路径(如
.\venv\Scripts\python.exe),Notepad++ 是以它自身安装目录为基准,不是当前文件所在目录,基本不可靠
如何让 Notepad++ 运行命令支持中文输出和输入
默认 cmd 窗口是 GBK 编码,Python 脚本用 UTF-8 保存时,print 中文会变乱码,input 输入也会异常——这不是 Notepad++ 的 bug,是 Windows 控制台编码和 Python 解释器之间的错位。
- 最稳方案:在命令里显式切换代码页,比如
cmd /c chcp 65001 >nul && C:\Python39\python.exe "$(FULL_CURRENT_PATH)" - 或者改 Python 脚本开头加三行:
import sys; sys.stdout.reconfigure(encoding='utf-8'); sys.stdin.reconfigure(encoding='utf-8')(仅 Python 3.7+) - 避免用
python -i模式,交互式下编码更难统一;如果真要交互,建议直接用外部终端(如 Windows Terminal)打开
运行命令里怎么传参数给 Python 脚本
"$(FULL_CURRENT_PATH)" 只能代入当前文件路径,没法自动补参数。想传参就得手写,而且顺序、引号、空格都要小心,不然参数会被拆开或丢掉。
- 固定参数写法示例:
C:\Python39\python.exe "$(FULL_CURRENT_PATH)" --verbose --input "data.csv" - 如果参数本身含空格,每个参数都得单独加引号,比如
--path "C:\My Project\config.json",不能只包最后那个 - 想动态传当前选中文本?Notepad++ 不支持运行命令直接读取选区内容;只能靠插件(NppExec)或先复制到剪贴板再用
pyperclip读取 - 多个参数之间用空格分隔,别用逗号或分号——那是 shell 语法,不是 Python argv 解析规则
最常被忽略的一点:Notepad++ 的“运行”命令本质是启动一个新进程,它不共享当前会话的环境变量、工作目录或标准流。你以为的“当前目录”,其实是 Notepad++ 安装目录;你以为的“已激活虚拟环境”,其实压根没生效。所有路径、编码、参数,都得白纸黑字写清楚,不能靠猜测或继承。










