2014-09-25 134 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上工作。其他人确认这一点?