Tidak ada file atau direktori seperti itu tetapi saya dapat melihatnya!


11

Saya mencoba menjalankan skrip python, pada Raspberry PI tanpa kepala menggunakan winSCP dan mendapatkan pesan galat berikut:

Command '"./areadetect_movie_21.py"'
failed with return code 127 and error message
/usr/bin/env: python
: No such file or directory.

Ketika saya mencoba dan lari dari terminal, saya mendapatkan:

: No such file or directory.

Saya mencoba skrip python yang sama, di direktori yang sama, dengan shebang python yang sama, izin yang sama dan menggunakan pi pengguna yang sama, dan itu berhasil.

Saya juga melakukan lsdan saya bisa melihat file, jadi saya tidak tahu mengapa itu tidak akan berjalan.


1
Apakah Anda mengedit `areadetect_movie_21.py 'di Windows? Jika Anda melihat ini askubuntu.com/a/372691 .
Arkadiusz Drabczyk

ya dalam gerhana, mengapa?
Reggie

Saya mengedit komentar saya setelah menambahkannya. Lihat askubuntu.com/a/372691 ini .
Arkadiusz Drabczyk

ya ya ya itu berhasil, terima kasih banyak! dapatkah Anda mengonversi komentar Anda menjadi jawaban sehingga saya dapat menerimanya
Reggie

ok, saya berhasil :)
Arkadiusz Drabczyk

Jawaban:


28

Dari AskUbuntu , jawab oleh Gilles :

Jika Anda melihat kesalahan ": Tidak ada file atau direktori" (tanpa apa pun sebelum titik dua), itu berarti garis shebang Anda memiliki carriage return di bagian akhir, mungkin karena itu diedit di Windows (yang menggunakan CR, LF sebagai pemisah baris). Karakter CR menyebabkan kursor bergerak kembali ke awal baris setelah shell mencetak awal pesan dan jadi Anda hanya bisa melihat bagian setelah CR yang mengakhiri string juru bahasa yang merupakan bagian dari pesan kesalahan.

Hapus CR: garis shebang perlu memiliki akhiran baris Unix (hanya linefeed). Python sendiri memungkinkan ujung garis CRLF, sehingga karakter CR di baris lain tidak sakit. Script shell di sisi lain harus bebas dari karakter CR.

Untuk menghapus ujung garis Windows, Anda dapat menggunakan dos2unix :

sudo dos2unix / usr / local / bin / casperjs

atau sed:

sudo sed -i -e 's / \ r $ //' / usr / local / bin / casperjs

Jika Anda harus mengedit skrip di bawah Windows, gunakan editor yang berupaya dengan ujung garis Unix (yaitu sesuatu yang lebih sedikit mati otak daripada Notepad) dan pastikan bahwa itu dikonfigurasikan untuk menulis ujung garis Unix (yaitu hanya LF) saat mengedit file Unix.


1
Saya membuka file, pada pi, melalui ssh di notepad pada PC windows saya dan menghapus carriage return dan berfungsi :) Terima kasih banyak.
Reggie
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.