2012-09-11 138 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。 :)

編輯:剛纔看到你的編輯。看來我是更大的傻瓜!