如何使python脚本自行执行

BPm*_*BPm 12 python

可能重复:
从命令行调用python脚本而不先键入"python"

我试过了

bash$ chmod +x script.py  
Run Code Online (Sandbox Code Playgroud)

不起作用.我也记得放

#!usr/bin/env python  
Run Code Online (Sandbox Code Playgroud)

在脚本的开头.

bash$ ./script.py  
Run Code Online (Sandbox Code Playgroud)

什么都不做,它只是将我的光标改为交叉大声笑

更新:我已经修好了

#!/usr/bin/python    
Run Code Online (Sandbox Code Playgroud)

我也试过了

chmod a+x script.py   
Run Code Online (Sandbox Code Playgroud)

依然没有.我的脚本有导入命令并使用sys.argv ...我已按照此链接上的说明进行操作(请查看页面末尾).什么都行不通

Gre*_*ill 17

以下是可能的粗略顺序中要尝试的事项列表:

  • 确保shebang行具有正确的语法(您已经完成了此操作#!/usr/bin/python).
  • 确保shebang是文件中的第一行(甚至不是空白行或上面的注释).
  • 验证/usr/bin/python实际存在并且有效.您的Python解释器可能安装在别处.键入/usr/bin/python在提示符,并确保Python的开始.which python如果您不知道它的安装位置,请键入.
  • 如果.不在您的PATH(可能不是)中,则必须运行脚本,./script.py因为默认情况下shell不会在当前目录中查找命令.
  • 确保在脚本上设置了可执行位(+x,请确认ls -l).
  • 确保在编辑器中使用仅LF行结尾.贝壳可能很挑剔,你的shebang线必须只用LF而不是CRLF结束.如果您使用的是Windows文本编辑器,这可能只是一个问题,但可能值得检查.
  • 确保文本编辑器不会在文件的开头静默插入UTF-8 BOM.同样,这只有在Windows上使用记事本时才有可能.


Sin*_*ion 10

"shebang"需要包含可执行文件的完整路径.你正在打电话env,这很好,但你没有给它完整的路径:像这样开始你的脚本:

#!/usr/bin/env python  
# ^
Run Code Online (Sandbox Code Playgroud)