2014-09-25 136 views
1

假設我有一個Python腳本,我想通過在命令行之外執行來運行,只需在文件資源管理器中雙擊即可。當我現在雙擊.py文件時,一個黑色的命令行框會短暫出現,然後消失。我需要在文件中寫入以啓用此功能?使Python腳本可執行

我會對Windows和Linux機器的答案感興趣!

+0

你是一臺linux機器還是windows? – 2014-09-25 18:02:23

+0

我主要使用Windows,但我對這兩種情況都感興趣! – Karnivaurus 2014-09-25 18:04:25

+0

當你雙擊一個.py文件時,會發生什麼?黑匣子是否出現然後消失? – MackM 2014-09-25 18:07:09

回答

0

你的腳本正在運行,當它完成時,它正在關閉。要查看結果,你需要添加一些東西來阻止它。嘗試添加這是在腳本中的最後一行:

staller = intput("Press ENTER to close") 
1

在Linux下,你將不得不作出.py文件可執行

chmod 750 mypyprog.py 

添加適當的家當在第一線,使外殼或文件瀏覽器知道正確的解釋

#!/usr/bin/python3 
print('Meow :3')    # <- replace this by payload 

如果您要查看的結果之前的shell窗口正在關閉,一個staller末(如圖MackM)爲u seful:

input('Press any key...') 

當我們從評論看,你已經掌握了步驟1和2,所以3將成爲你的朋友。

Windows不知道shebangs。您必須將.py擴展名與Python解釋器相關聯,如in the documentation所述。 Python解釋器不必位於PATH中,因爲可以在那裏指定完整路徑。

+2

shebang也可以是'#!/ usr/bin/env python3' 。這更加靈活,因爲它不關心python3的安裝位置。 – cezar 2014-09-25 18:53:03

0

Im相當肯定正確的方式做,這會是這樣的

#somefile.py 

def some_definition_you_want_to_run(): 
    print("This will print, when double clicking somefile.py") 

#and then at the bottom of your .py do this 
if __name__ == "__main__": 
    some_definition_you_want_to_run() 
    #next line is optional if you dont "believe" it actually ran 
    #input("Press enter to continue") 

這使得它,所以,只要是下如果從外部(打開時,聲明發生而不是當你導入它,因爲「 name「doesnt ==」main「at 0127)當然,如果你想要運行它,只需雙擊它即可。它運行的BOOM。

我沒有足夠的Linux熟悉度來確認它是如何在Linux上工作的,但它絕對可以在Windows上工作。其他人確認這一點?