“获取命令未找到和权限被拒绝”

2024-05-21 19:54:06 发布

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

我在文件的顶部有#!/usr/bin/env python。所以当我运行文件时它应该工作?但事实并非如此。当我使用

#!/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()

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*

Tags: 文件pyimportselfenvgtkbinmain
3条回答

似乎最有可能的问题是/usr/bin/env不可由您执行。尝试sudo chmod 755 /usr/bin/env。显然,这不是正常状态,因此必须有人手动创建了/usr/bin/env上的权限。

基本的python代码发生了什么事情,比如:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print "Hello World !"

也许问题出在GTK或其他方面,而不是#!/usr/bin/env python

Chris在对问题的评论中提出了一个很好的建议,而Peter的回答涵盖了如果Chris的建议不起作用,并且您位于系统上的sudoer组(即,如果您可以修改不属于您的用户的文件)时,您应该做什么。接下来可能是你的下一个选择。

在命令shell中,键入:

which python

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

$ which python
/usr/bin/python

因此,我的谢邦会:

#!/usr/bin/python

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

相关问题 更多 >