【问题标题】:Python shebang execution permission denied [duplicate]Python shebang执行权限被拒绝[重复]
【发布时间】:2015-07-13 18:22:20
【问题描述】:

我有一个名为blah.py 的非常简单的脚本,它看起来像这样:

#!/space/jazz/1/users/gwarner/anaconda/bin python
print 'here'

我的which python 返回/space/jazz/1/users/gwarner/anaconda/bin/pythonls -l blah.py 返回-rwxrwxr-x 1 gwarner gwarner 64 Jul 13 14:16 blah.py。我的用户名是gwarner。但是,当我尝试使用./blah.py 从它所在的目录执行此脚本时,我得到./blah.py: Permission denied。当我使用python blah.py 执行它时,它可以正常运行。怎么回事?

【问题讨论】:

  • chmod +x blah.py,你需要给它一个可执行位。
  • 你错过了shebang中/binpython之间的空格吗?
  • @GWarner 我的错,里面有没有多余的空间是我的意思
  • @GWarner,@ChrisSprague 说你在#! 行中的binpython 之间有一个空格,它应该是/。您正在尝试使用 bin 作为执行程序来运行此脚本。这是行不通的,因为bin 是一个目录。
  • @ChrisSprague 就是这样。谢谢!

标签: python executable permission-denied shebang


【解决方案1】:

我认为你在 shebang 行中有一个额外的空间......试试这个:

#!/space/jazz/1/users/gwarner/anaconda/bin/python

【讨论】:

    【解决方案2】:

    确保/space/jazz/1/users/gwarner/anaconda/bin 文件确实设置了可执行权限。

    【讨论】:

      【解决方案3】:

      您正试图将blah.py 作为可执行文件运行。为此,您可能需要在终端上运行它

      sudo chmod +x blah.py
      

      更改文件的权限并使其可执行。

      【讨论】:

      • OP说文件的权限被报告为-rwxrwxr-x,所以不是已经可以执行了吗?
      • 如果我是正确的,最高权限级别是 -rwxrwxrwx 在 777。所以,也许需要更改。 @GWarner 你试过了吗?
      • @o11c 我已经清楚地说明了权限更改。你怎么能创造出“粗心”这个词?
      • @HimanshuMishra 777 是最宽松的,但是这个用户拥有脚本文件,使其全局许可是不必要的并且可能很危险,因为它允许任何其他用户读取甚至修改文件。跨度>
      • @HimanshuMishra 你永远不应该使用sudo 除非你确切地知道没有它你缺少什么特权以及为什么你找不到其他方法。这不是一些神奇的“修复所有错误”命令。 sudo 非常危险;在这种显然不需要的情况下使用它是一个非常糟糕的习惯。
      猜你喜欢
      • 2021-03-24
      • 1970-01-01
      • 2016-04-15
      • 2019-05-02
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      相关资源
      最近更新 更多