Ubuntu 10.10 'Command not found' per script python


2

Ho uno script python 'monty.py' con

#!/usr/bin/env python

nella prima riga. Quando eseguo monty.py nel terminale, ottengo

monty.py: command not found

Sono nella directory corretta, e ho anche chmod'ed per essere eseguibile. Perché non funzionerà? Sto usando Ubuntu 10.10 nel lettore vmware.

Modifica: Inoltre, quando eseguo / usr / bin / env python dalla riga di comando, l'interprete python si avvia. Quindi è nel posto giusto.

Modifica modifica: l'ho capito. Apparentemente non so come usare chmod.

Risposte:


2
python /path/to/monty/monty.py

O

cd /path/to/monty
./monty.py

Per eseguirlo nel secondo modo (./) il file monty.py deve essere contrassegnato come eseguibile:

chmod +x /path/to/monty/monty.py

Funziona quando uso python monty.py. Non voglio semplicemente digitare "python" ogni volta. Anche ./monty.py non funziona, vedi il mio commento sopra.
Java man

1
Vedi la mia modifica su chmod + x
Andrew Lambert

L'ho fatto prima che facessi la domanda.
Java man

Prova a pronunciare questo comando: which python e verificare che l'output corrisponda al percorso specificato in monty.py ( /usr/bin/env python )
Andrew Lambert

which python mi da /usr/bin/python. Ho provato a cambiare la prima riga nel file, ancora senza dadi.
Java man

0

Hai creato monty.py in un editor di testo di Windows? Se è così, prova dos2unix monty.py

Se il file ha <cr><nl> finali, quindi il sistema vedrà #!/usr/bin/env python\r e "python \ r" non può essere trovato.


Scritto in gedit su ubuntu.
Java man

@ Java, solo per controllare, cosa fa head -1 monty.py | od -c ti mostra come finisce la linea?
glenn jackman

#!/usr/bin/python\n
Java man

@ Java, si prega di aggiornare la domanda con lo stato attuale. lo capisco ./monty.py dà "permesso negato" e monty.py dà "comando non trovato". È giusto? Potresti volerci mostrare un ls -l elenco del file.
glenn jackman

0

Salvo che . (la directory corrente) è nel tuo percorso, non cercherai nella directory corrente il file che stai utilizzando ANCHE SE È nella tua directory corrente. Invece, prova a correre ./monty.py


Stupida formattazione dei commenti. ./monty.py bash: ./monty.py: Permission denied sudo ./monty.py sudo: /.monty.py: command not found
Java man
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.