winSCP를 사용하여 헤드리스 Raspberry PI에서 Python 스크립트를 실행하려고 하는데 다음과 같은 오류 메시지가 나타납니다.
Command '"./areadetect_movie_21.py"'
failed with return code 127 and error message
/usr/bin/env: python
: No such file or directory.
터미널에서 실행하려고 하면 다음과 같은 결과가 나타납니다.
: No such file or directory.
동일한 디렉토리에서 동일한 python shebang, 동일한 권한, 동일한 사용자 pi를 사용하여 유사한 Python 스크립트를 사용해 보았지만 작동했습니다.
저도 하나 만들어 ls
봤는데 파일이 보이는데 왜 실행이 안되는지 모르겠네요.
답변1
~에서우분투에 물어보세요, 님이 답변함자일스:
": 해당 파일 또는 디렉터리 없음"(콜론 앞에 아무것도 없음) 오류가 표시되면 shebang 줄 끝에 캐리지 리턴이 있음을 의미합니다. 아마도 Windows에서 편집했기 때문일 것입니다(CR, LF를 줄 구분 기호로 사용). . 쉘이 메시지의 시작 부분을 인쇄한 후 CR 문자로 인해 커서가 줄의 시작 부분으로 다시 이동하므로 오류 메시지의 일부인 해석기 문자열을 끝내는 CR 뒤의 부분만 볼 수 있습니다.
CR:shebang 줄을 제거하려면 Unix가 필요합니다.줄 끝(개행에만 해당). Python은 기본적으로 CRLF 줄 끝을 허용하므로 다른 줄의 CR 문자는 효과가 없습니다. 반면에 쉘 스크립트에는 CR 문자가 포함되어서는 안 됩니다.
Windows 줄 끝을 제거하려면 다음을 사용할 수 있습니다.도스2유닉스:
sudo dos2unix /usr/local/bin/casperjs
또는 sed:
sudo sed -i -e 's/\r$//' /usr/local/bin/casperjs
Windows에서 스크립트를 편집해야 하는 경우 Unix 줄 끝(예: 메모장보다 간단한 것)을 처리할 수 있는 편집기를 사용하고 Unix 파일을 편집할 때 Unix 줄 끝(예: LF만)을 쓰도록 구성되어 있는지 확인하세요.