Saya mencoba menjalankan skrip python, pada Raspberry PI tanpa kepala menggunakan winSCP dan mendapatkan pesan kesalahan 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 menjalankan dari terminal, saya mendapatkan:
: No such file or directory.
Saya mencoba skrip python serupa, di direktori yang sama, dengan python shebang yang sama, izin yang sama dan menggunakan pi pengguna yang sama, dan berhasil.
Saya juga melakukan ls
dan saya dapat melihat file tersebut, jadi saya tidak tahu mengapa itu tidak dapat dijalankan.
Jawaban yang Diterima:
Dari AskUbuntu, jawab oleh Gilles:
Jika Anda melihat kesalahan “:No such file or directory” (tanpa tanda titik dua sebelum titik dua), itu berarti baris Shebang Anda memiliki carriage return di akhir, mungkin karena telah diedit di Windows (yang menggunakan CR,LF sebagai pemisah garis). Karakter CR menyebabkan kursor kembali ke awal baris setelah shell mencetak awal pesan sehingga Anda hanya dapat melihat bagian setelah CR yang mengakhiri string interpreter yang merupakan bagian dari pesan kesalahan.
Hapus CR:baris Shebang harus memiliki akhiran baris Unix (hanya linefeed). Python sendiri memungkinkan akhir baris CRLF, sehingga karakter CR di baris lain tidak sakit. Skrip shell di sisi lain harus bebas dari karakter CR.
Untuk menghapus akhiran baris 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 Windows, gunakan editor yang mengatasi akhiran baris Unix (yaitu sesuatu yang kurang mematikan otak daripada Notepad) dan pastikan bahwa itu dikonfigurasi untuk menulis akhiran baris Unix (yaitu hanya LF) saat mengedit file Unix.