그런 파일이나 디렉터리는 없지만 볼 수 있어요!

그런 파일이나 디렉터리는 없지만 볼 수 있어요!

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만)을 쓰도록 구성되어 있는지 확인하세요.

관련 정보