#!/ usr/bin/env python:找不到命令,拒绝权限

Jie*_*eng 5 python pygtk

我在文件的顶部#!/usr/bin/env python.所以当我运行文件时它应该工作?但它没有.它的工作原理,当我使用python file.py寿

#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk 

class App1:
  def __init__(self):
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.show()

  def main(self):
    gtk.main()

if __name__ == "__main__":
  app = App1()
  app.main()
Run Code Online (Sandbox Code Playgroud)

Python以下是发生的事情:

jiewmeng@jiewmeng:/labs/projects/learnPython$ app1.py
app1.py: command not found
jiewmeng@jiewmeng:/labs/projects/learnPython$ ./app1.py
bash: ./app1.py: Permission denied
jiewmeng@jiewmeng:/labs/projects/learnPython$ ll
total 12
drwxr-xr-x 2 jiewmeng jiewmeng 4096 2011-07-16 22:08 ./
drwxr-xr-x 4 jiewmeng jiewmeng 4096 2011-07-16 21:45 ../
-rwxrwxr-x 1 jiewmeng jiewmeng  256 2011-07-16 22:05 app1.py*
Run Code Online (Sandbox Code Playgroud)

mac*_*mac 6

克里斯在这个问题的评论中提出了一个很好的建议,彼得的答案涵盖了如果克里斯的建议不起作用你应该做什么,而你在你的系统上的sudoer组(即如果你可以修改属于那些的文件以外的文件)你的用户).以下可能是您的下一个选择.

在命令shell中,键入:

which python
Run Code Online (Sandbox Code Playgroud)

此命令将告诉您python的工作安装位置.然后你可以相应地修改你的python文件中的shebang行.例如,在我的系统上:

$ which python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

因此我的shebang将是:

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

请注意,这将使您的文件在您的系统上运行,但很可能会使其无法在其他系统上运行...