2012-09-11 139 views
2

我在win7上安装了notepad ++,并安装了notepad ++ exec插件。每当我执行我运行的.py脚本,我得到以下错误:通过记事本在Windows中执行python(F6执行命令__main__错误)

C:/Python27/python.exe "" 
Process started >>> 
C:\Python27\python.exe: can't find '__main__' module in '' 
<<< Process finished. 
================ READY ================ 

我index.py脚本如下:

text = "Hello World" 
print text 

记事本++执行脚本(F6)如下:

C:/Python27/python.exe "$(C:/Python27/python.exe)" 

这是在我的系统上python.exe的正确路径。在Windows环境变量中,我也将其添加到PATH中。此外,我启动了python.exe命令提示符,并通过手动输入脚本来获取脚本。我已经完成了目录搜索C:/ Python27,并且主要 .py文件存在。

这是怎么回事?为什么Python不能找到__ main __模块?

编辑:

没关系这一点,我是个白痴。

所以我误解了记事本+ EXEC(F6)脚本设置:

C:/Python27/python.exe "$(C:/Python27/python.exe)" 

它应该是这个:

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

当然它无法找到 .py文件,因为它不会进入FULL_CURRENT_PATH。 继续。

+0

其实,只需要清楚,'__main__'是Python中的一个预定义的名称,特别是正在执行的顶级模块。这与您命名文件“main.py”无关。有时,在Python模块中,您会在模块底部附近看到if __name__ =='__main __':',通常后面跟着测试代码或调用模块的主函数。如果模块由Python直接运行,而不是通过“import”语句运行,则会执行此“if”块中的代码。 (这也与你为什么看到'.pyc'文件为你导入的模块生成,但不是你执行的模块相关。 –

回答

2

基本上,这是因为脚本中的第一个参数已被错误解释。 也就是说,用代码

C:/python27/python.exe "$(C:/python27/python.exe)" 

你正在做的事情大致相当于

C:/python27/python.exe 

你需要使用的是:

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

注意:请不要代替“$(FULL_CURRENT_PATH)”用于其他内容 - 逐字放置 - 它是NppExec插件的预定义变量。它可以被认为是当前打开的选项卡中文件的完整路径的简写。

当我执行上面的脚本(上一个名为tmp.py文件,在我的C:\ XAMPP \ htdocs中\ enhzflep文件夹),我得到这个显示在控制台:

C:/Python27/python.exe "C:\xampp\htdocs\enhzflep\tmp.py" CreateProcess() failed with error code 2: The system cannot find the file specified.

这仅仅是好,因为我没有在这台机器上安装python。 :)

编辑:刚才看到你的编辑。看来我是更大的傻瓜!