如何使python脚本自行执行

时间:2011-09-26 23:56:50

标签: python

  

可能重复:
  Calling a python script from command line without typing “python” first

我试过

bash$ chmod +x script.py  

不起作用。我还记得把

#!usr/bin/env python  

在剧本的开头。

bash$ ./script.py  

什么也没做,只是将光标改为十字架lol

更新:我已修复

#!/usr/bin/python    

我也试过

chmod a+x script.py   

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

2 个答案:

答案 0 :(得分: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上使用记事本时才会出现这种情况。

答案 1 :(得分:10)

“shebang”需要包含可执行文件的完整路径。你正在调用env,这很好,但你没有给它完整的路径:像这样启动你的脚本:

#!/usr/bin/env python  
# ^