如何使python脚本自执行

2024-04-16 19:04:49 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
Calling a python script from command line without typing “python” first

我试过了

bash$ chmod +x script.py  

不起作用。我还记得

#!usr/bin/env python  

在剧本的开头。

bash$ ./script.py  

什么也不做,它只是把我的光标改成十字形

更新:我已修复

#!/usr/bin/python    

我也试过

chmod a+x script.py   

还是没什么。我的脚本有import命令并使用sys.argv…我已经遵循了关于这个link(请看页面的末尾)的说明。没用的


Tags: frompybashtypingbinusrlinescript
2条回答

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

#!/usr/bin/env python  
# ^

下面是要尝试的事情的列表,按大致的可能性顺序排列:

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

相关问题 更多 >