Không có tập tin hoặc thư mục như vậy nhưng tôi có thể nhìn thấy nó!


11

Tôi đang cố chạy một kịch bản python, trên Raspberry PI không đầu bằng winSCP và nhận được thông báo lỗi sau:

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

Khi tôi thử và chạy từ thiết bị đầu cuối, tôi nhận được:

: No such file or directory.

Tôi thử một tập lệnh python tương tự, trong cùng một thư mục, với cùng một python shebang, cùng quyền và sử dụng cùng một pi người dùng, và nó hoạt động.

Tôi cũng làm một lsvà tôi có thể xem tệp, vì vậy tôi không biết tại sao nó không chạy.


1
Bạn đã chỉnh sửa `areadetect_movie_21.py 'trên Windows chưa? Nếu bạn đã thấy điều này Askubfox.com/a/372691 .
Arkadiusz Drabchot 10/03/2015

có trong nhật thực, tại sao?
reggie 10/03/2015

Tôi đã chỉnh sửa nhận xét của mình sau khi tôi đã thêm nó. Xem phần hỏi này Ubuntu / a / 372691 .
Arkadiusz Drabczyk

vâng vâng vâng nó làm việc, cảm ơn rất nhiều! bạn có thể chuyển đổi nhận xét của bạn thành một câu trả lời để tôi có thể chấp nhận nó.
reggie 10/03/2015

ok, tôi đã làm được :)
Arkadiusz Drabchot 10/03/2015

Câu trả lời:


28

Từ AskUbfox , trả lời bởi Gilles :

Nếu bạn thấy lỗi, không có tập tin hoặc thư mục nào như vậy (không có gì trước dấu hai chấm), điều đó có nghĩa là dòng shebang của bạn có trả về vận chuyển ở cuối, có lẽ là do nó đã được chỉnh sửa trong Windows (sử dụng CR, LF làm đường phân cách). Ký tự CR làm cho con trỏ di chuyển trở lại đầu dòng sau khi trình bao in phần đầu của thông báo và do đó bạn chỉ có thể thấy phần sau CR kết thúc chuỗi trình thông dịch là một phần của thông báo lỗi.

Xóa CR: dòng shebang cần phải có dòng Unix kết thúc (chỉ cho ăn theo dòng). Bản thân Python cho phép kết thúc dòng CRLF, vì vậy các ký tự CR trên các dòng khác không bị tổn thương. Mặt khác, các kịch bản Shell phải không có ký tự CR.

Để loại bỏ các kết thúc dòng Windows, bạn có thể sử dụng dos2unix :

sudo dos2unix / usr / local / bin / casperjs

hoặc sed:

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

Nếu bạn phải chỉnh sửa tập lệnh trong Windows, hãy sử dụng trình chỉnh sửa đối phó với các kết thúc dòng Unix (nghĩa là một cái gì đó ít chết hơn so với Notepad) và đảm bảo rằng nó được cấu hình để viết các kết thúc dòng Unix (chỉ dành cho LF) khi chỉnh sửa tệp Unix.


1
Tôi đã mở tập tin, trên pi, thông qua ssh trong notepad trên PC windows của tôi và loại bỏ trả lại vận chuyển và nó hoạt động :) Cảm ơn rất nhiều.
reggie 10/03/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.