如何在Notepad++中执行Python脚本?

145

我更喜欢使用Notepad++进行开发,

那么如何通过Notepad++执行Python文件呢?


你可能会发现http://bytes.com/topic/python/answers/698915-python-notepad有帮助。 - Dominic Rodger
我为NppExec制作了一个小型设置指南。链接 - Cees Timmerman
21个回答

167

第一种选项:(最简单、推荐)

打开Notepad++。在菜单中选择:运行 -> 运行.. (F5)。键入:

C:\Python26\python.exe "$(FULL_CURRENT_PATH)"
现在,不要按运行按钮,而是按保存按钮来创建一个快捷方式。
注: - 如果你有Python 3.1:请将“Python26”更改为“Python31”。 - 添加“-i”参数,可以让命令行窗口在脚本完成后保持打开状态。
第二种选择是使用批处理脚本来运行Python脚本,然后从Notepad++创建一个指向该脚本的快捷方式。详见:http://it-ride.blogspot.com/2009/08/notepad-and-python.html 第三种选择(不安全)是通过打开“HKEY_CURRENT_USER\Software\Python\PythonCore”路径查找Python的安装路径。如果该路径不存在,你可以尝试创建它。

1
谢谢你迄今为止的帮助。我尝试了第二个选项,但它没有起作用。它显示:http://i37.tinypic.com/b4fhfm.jpg在Windows 7上,这可能是问题所在? - richtea
27
打开Notepad++,在菜单栏中选择:运行 -> 运行..(或按快捷键F5)。输入以下内容:cmd /K "$(FULL_CURRENT_PATH)"。 - Ramiz Uddin
2
我不理解快捷方式的问题。我保存了它并设置了一个快捷键组合,但按下这些键时它却无法运行。我做错了什么?我可以将其作为插件命令,并在选择控制台窗口时使用它。但那完全违背了初衷。 - AlanSE
4
虽然这个答案(#3)似乎是我在网上发现的最常见的答案,但它对我来说效果不佳。问题在于它运行Notepad ++目录中的所有内容。因此,我想出了以下解决方案:cmd / c“ taskkill / F / IM python.exe&cd $(CURRENT_DIRECTORY)&C:\ Python27 \ python.exe -i“ $(CURRENT_DIRECTORY)\ $(FILE_NAME)””这将在正确的文件夹中运行代码,并在执行后保留解释器。此外,它还会关闭您可能已忽略关闭的任何其他打开的Python窗口,就像我经常做的那样。 - copeland3300
7
更新:这对我也有效:py -3 -i "$(FULL_CURRENT_PATH)"。了解py -3命令的有用链接:https://dev59.com/8WUo5IYBdhLWcg3wmQZN - Gabriel Staples
显示剩余5条评论

47

@Ramiz Uddin的回答绝对值得更多的关注:

  • 打开Notepad++
  • 在菜单中选择:运行运行..(F5)
  • 输入:cmd /K python "$(FULL_CURRENT_PATH)"

3
这个方法很有效,而且在我看来更容易配置。还可以添加“-i”参数让窗口保持打开状态。cmd /K python -i "$(FULL_CURRENT_PATH)" - SwampYeti
值得注意的是,此解决方案需要将Python添加到您的PATH中。它通过打开命令行并键入 python "$(FULL_CURRENT_PATH)" 来工作。 - Stevoisiak
不适用于Python 3。有关此问题的解决方案,请参阅此处的答案:https://dev59.com/zXI-5IYBdhLWcg3wu7FU#48528175 - Gabriel Staples
这个调用命令行窗口。我们能否改为调用PowerShell? - enthu

23

以下是对我有效的方法:

打开Notepad ++并按下F5。你会得到一个小弹出框:

输入要运行的程序的弹出框

对于Python 2.7,请键入:C:\Python27\python.exe -i "$(FULL_CURRENT_PATH)"

然后另存为...,并选择每次想要运行某些内容时启动它的自定义键组合。


2
这是一个很好的简明回答,我已经向我的实习生们介绍了它,当他们开始设置NPP进行Python开发时。但是他们一直有困难理解在哪里输入命令,所以我添加了一个图形来强化您(对我来说)清晰的说明。 他们也遇到了一些麻烦,无法理解命令的第一部分C:\Python27\python.exe必须变化以反映他们自己安装的Python的位置,但第二部分-i "$(FULL_CURRENT_PATH)"是需要按原样输入的魔法。 - Anne Gunn
1
在我的Windows11和Python 3.10.2上运行得非常好。 - massi

16
我也希望能够直接从Notepad++中运行Python文件。 在网上找到的最常见选项是使用内置选项Run。然后你有两个选择:
  1. Run python file in console (in Windows it is Command Prompt) with code something like this (links: enter image description here enter image description here enter image description here):

    C:\Path\to\Python\python.exe "$(FULL_CURRENT_PATH)"
    

    (If your console window immediately closes after running then you can add cmd /k to your code. Links: enter image description here enter image description here enter image description here enter image description here) This works fine, and you can even run files in interactive mode by adding -i to your code (links: enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here).

  2. Run python program in IDLE with code something like this (links: enter image description here enter image description here enter image description here enter image description here, in these links C:\Path\to\Python\Lib\idlelib\idle.py is used, but I am using C:\Path\to\Python\Lib\idlelib\idle.bat instead, because idle.bat sets the right current working directory automatically):

    C:\Path\to\Python\Lib\idlelib\idle.bat "$(FULL_CURRENT_PATH)"
    

    Actually, this doesn't run your program in IDLE Shell, but instead it opens your python file in IDLE Editor and then you need to click Run Module (or click F5) to run the program. So it opens your file in IDLE Editor and then you need run it from there, which defeats the purpose of running python files from Notepad++.

    But, searching online, I found option which adds '-r' to your code (links: enter image description here enter image description here enter image description here enter image description here enter image description here):

    C:\Path\to\Python\Lib\idlelib\idle.bat -r "$(FULL_CURRENT_PATH)"
    

    This will run your python program in IDLE Shell and because it is in IDLE it is by default in interactive mode.


通过内置的运行选项运行Python文件的问题是,每次运行Python文件时,都会打开新的控制台或IDLE窗口,并且会失去先前执行的所有输出。对于某些人来说,这可能并不重要,但当我开始使用Python编程时,我使用Python IDLE,所以我习惯在同一个IDLE Shell窗口中多次运行Python文件。从Notepad ++运行Python程序的另一个问题是,您需要手动保存文件,然后单击运行(或按F5)。解决这些问题(据我所知*)需要使用Notepad ++插件。最适合从Notepad ++运行Python文件的插件是NppExec。(我还尝试过PyNPPPython ScriptPyNPP在控制台中运行Python文件,它可以工作,但您可以通过内置的运行选项完成而无需插件,而Python Script用于运行与Notepad ++交互的脚本,因此您无法运行Python文件。)要使用NppExec插件运行Python文件,您需要转到插件-> NppExec -> 执行,然后输入类似于this的内容(链接:enter image description here enter image description here):
C:\Path\to\Python\python.exe "$(FULL_CURRENT_PATH)"

使用NppExec,您还可以在运行npp_save command之前保存Python文件,使用cd "$(CURRENT_DIRECTORY)" command设置工作目录,或者使用-i command交互模式下运行Python程序。我在网上找到了许多链接(enter image description here enter image description here enter image description here enter image description here enter image description here)提到了这些选项,但是我发现最好使用NppExec来运行Python程序的方法是在NppExec的手册中找到的,其中有第4.6.4. Running Python & wxPython章,其中包含以下code:
npp_console -  // disable any output to the Console
npp_save  // save current file (a .py file is expected)
cd "$(CURRENT_DIRECTORY)"  // use the current file's dir
set local @exit_cmd_silent = exit()  // allows to exit Python automatically
set local PATH_0 = $(SYS.PATH)  // current value of %PATH%
env_set PATH = $(SYS.PATH);C:\Python27  // use Python 2.7
npp_setfocus con  // set the focus to the Console
npp_console +  // enable output to the Console
python -i -u "$(FILE_NAME)"  // run Python's program interactively
npp_console -  // disable any output to the Console
env_set PATH = $(PATH_0)  // restore the value of %PATH%
npp_console +  // enable output to the Console

你只需要复制这段代码并更改你的Python目录,如果你使用其他版本的Python(例如*我正在使用Python 3.4,所以我的目录是C:\ Python34)。这段代码完美地工作,但是我添加了一行line到这段代码中,以便我可以多次运行Python程序而不会丢失先前的输出:

npe_console m- a+

a+是为了启用“追加”模式,它会保留先前的控制台文本并不清除。

m-关闭控制台内部消息(这些消息是绿色的)。

我在NppExec的执行窗口中使用的最终代码是:

npp_console -  // disable any output to the Console
npp_save  // save current file (a .py file is expected)
cd "$(CURRENT_DIRECTORY)"  // use the current file's dir
set local @exit_cmd_silent = exit()  // allows to exit Python automatically
set local PATH_0 = $(SYS.PATH)  // current value of %PATH%
env_set PATH = $(SYS.PATH);C:\Python34  // use Python 3.4
npp_setfocus con  // set the focus to the Console
npe_console m- a+
npp_console +  // enable output to the Console
python -i -u "$(FILE_NAME)"  // run Python's program interactively
npp_console -  // disable any output to the Console
env_set PATH = $(PATH_0)  // restore the value of %PATH%
npp_console +  // enable output to the Console

你可以保存NppExec的代码,并为该NppExec脚本分配一个快捷键。 (您需要打开NppExec插件的高级选项,在关联脚本下拉列表中选择您的脚本,按添加/修改,重新启动Notepad++,转到Notepad++的设置 -> 快捷键映射器 -> 插件命令,选择您的脚本,单击修改分配一个快捷键。 我想将F5作为我的快捷键,为此,您需要先将内置选项运行的快捷键更改为其他内容。 链接到NppExec手册中解释如何保存NppExec代码和分配快捷键的章节:NppExec的“执行…”NppExec脚本

P.S.*:使用NppExec插件,您可以添加高亮过滤器(在控制台输出过滤器...中找到),以突出显示某些行。我用它来以红色突出显示错误行,为此您需要添加高亮掩码*File“%FILE%”,line%LINE%,in <*>Traceback(most recent call last):这样


3
截至2018年,这是最好的、最完整的答案。 - Jimmy He
2
@JimmyHe:截至2021年。 - Stephan Kolassa
1
喜欢你将链接样式设置为小圆形图片。我也打算开始使用它。顺便说一句,非常细致的回答。 - m01010011
1
这个答案应该被评为最佳。 - Tomato Master

14

首先从 https://www.python.org/downloads/ 下载Python并安装。

运行安装程序。

**重要:** 确保你勾选了以下两项:

  • 为所有用户安装Launcher
  • 将Python 3.6添加到路径中

点击“立即安装”并完成安装。

打开Notepad++并从插件管理器中安装插件PyNPP。我使用的是N++ 6.9.2版本。

保存一个新文件并命名为new.py。

在Notepad++中输入代码。

import sys

print("Hello from Python!")
print("Your Python version is: " + sys.version) 

按下Alt+Shift+F5即可。

就这么简单。


更改快捷键的技巧:搜索快捷键(而不是名称)。禁用可能会产生冲突的快捷键。 - JinSnow
可选:要运行脚本(任何脚本,不仅限于Python),您可以使用插件RunMe(但如果运行Python,则Python控制台不会出现)。 - JinSnow

14

在菜单中选择:"运行" --> "运行..."(或者直接按下 F5)。

对于 Python 2,请输入:

py -2 -i "$(FULL_CURRENT_PATH)"

对于Python 3,请输入:

py -3 -i "$(FULL_CURRENT_PATH)"

参考文献:

为了更好地理解py命令:

py -h

了解py命令的另一个有用链接:如何在Windows 7中运行Python 2和3?

感谢Reshure的回答,让我找到正确的解决方案。


1
向上移动。使用 CTRL + ALT + P 快捷键。 - akinuri

13

所有与“运行-> 运行”菜单选项有关的答案都使用cmd的“/K”开关,这样终端会保持打开状态,或者对于python.exe是“-i”,以便强制启用Python交互模式 - 两者都是为了保存输出供您观察。

然而,在cmd /k中,您必须键入exit才能关闭它,在python -i中,则要用quit()。如果这对您来说输入太多(对我来说肯定是的:),可以使用以下Run命令:

cmd /k C:\Python27\python.exe  "$(FULL_CURRENT_PATH)" & pause & exit

C:\Python27\python.exe表示你Python安装的完整路径(如果想要使用用户路径下的第一个可执行文件,可以只写python)。

&是Windows中无条件执行下一条命令的符号——不管上一条命令是否成功执行都会继续执行下一条命令(&&是“与”——只有在上一条成功执行后才会执行下一条,||是“或”)。

pause会输出“按任意键继续. . .”,然后等待你按下任何键(这个输出可以被抑制)。

exit会为你输入“exit”以退出命令行界面。

所以最终,cmd会运行python.exe来执行当前的文件,并保持窗口打开状态,pause等待你按下任意键,最后exit关闭窗口。


1
这个答案值得置顶。 - Ali80
1
到目前为止,这是我见过的最佳解决方案。 - Erik Warming
这绝对是最好的方法,简洁明了。 - mepkn

6

之前提出的解决方案都对我没有用,需要进行小的修改。

在 Notepad++ 中按下 F5 键后,输入:

cmd /k "C:\Python27\python.exe $(FULL_CURRENT_PATH)"

命令提示符会一直保持打开状态,这样你就可以看到脚本的输出。

5
我希望这里的人们能发布具体步骤而不仅是概念。最终我用cmd /k版本成功了。 以下是详细的说明: 1.在NPP中,点击菜单项:运行 2.在子菜单中,点击:运行 3.在运行...对话框中,在“要运行的程序”字段中删除任何现有文本,并键入:cmd /K "$(FULL_CURRENT_PATH)" /K为可选项,它保持脚本运行时创建的窗口打开,如果需要可以使用。 4.点击保存按钮。 5.快捷方式对话框会打开;如果您想要一个键盘快捷方式,请填写(有一个注释说“这会禁用加速器”,不知道是什么意思,所以也许您不想使用键盘快捷方式,但是当您不需要加速器时指派一个可能是没有问题的)。 我想你在某个地方必须告诉NPP Python.exe文件在哪里(例如,对于我来说是:C:\Python33\python.exe)。不知道应该在哪里或如何执行此操作,但在尝试各种方法后,我成功了 - 我不记得是哪种方法起作用了。

我猜Python已经在你的路径中了。这对我很有效,这就是为什么我不需要告诉NPP Python在哪里(而且我认为没有地方可以告诉NPP Python在哪里)。 - Ryan

5

我使用NPP_Exec插件(在插件管理器中找到)。 安装完成后,打开控制台窗口(ctrl + ~)并输入:

cmd

这将启动命令提示符。然后输入:
C:\Program Files\Notepad++> **python "$(FULL_CURRENT_PATH)"**

执行当前正在处理的文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接