2011-07-16 20 views
5

Tengo en la parte superior del archivo #!/usr/bin/env python. Entonces debería funcionar cuando ejecuto el archivo? Pero no es así. Funciona cuando uso python file.py aunque#!/Usr/bin/env python: Obteniendo comando no encontrado y Permiso denegado

#!/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 Esto es lo que sucedió:

[email protected]:/labs/projects/learnPython$ app1.py 
app1.py: command not found 
[email protected]:/labs/projects/learnPython$ ./app1.py 
bash: ./app1.py: Permission denied 
[email protected]:/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* 
+2

¿Se ejecuta el intérprete python si simplemente hace '/ usr/bin/env python' desde la línea de comando? –

+3

Obtiene 'command not found' porque' .' no está en '$ PATH' (ejecute' PATH = $ PATH :. app1.py' y ese error en particular no ocurrirá). –

+0

@jiewmeng - ¿Has resuelto esto? – mac

Respuesta

6

Chris hace una excelente sugerencia en los comentarios a la pregunta, y la respuesta de Peter cubre lo que debe hacer si la sugerencia de Chris no funciona y está en el grupo sudoer en su sistema (es decir, si puede modificar archivos que no sean los que pertenecen a su usuario). Lo que sigue podría ser su próxima opción.

En una consola de comandos, escriba:

which python 

este comando le dirá dónde se encuentra su instalación de trabajo de pitón. Entonces puedes modificar la línea shebang en tu archivo python en consecuencia. Por ejemplo, en mi sistema:

$ which python 
/usr/bin/python 

así mi tinglado sería:

#!/usr/bin/python 

Tenga en cuenta que esto va a hacer su trabajo de archivo en el sistema, pero es muy probable que hará que sea No Ejecutable en otros ...

1

Parece que el problema más probable es/usr/bin/env no es ejecutable por ti. Pruebe sudo chmod 755 /usr/bin/env. Definitivamente este no es el estado normal, por lo que alguien debe haber borrado manualmente los permisos en/usr/bin/env.

+1

No creo que sea esto. Con bash 4.2.8 en Ubuntu 11.04, si le doy permisos malos, obtengo 'bash: ./file.py:/usr/bin/env: bad intérprete: Permiso denegado'. –

0

¿Qué pasó con un código Python básica como:

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

print "Hello World !" 

Tal vez el problema es con GTK u otro, pero no con #!/usr/bin/env python?