그런 파일이나 디렉토리는 없지만 볼 수 있습니다!


11

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.

동일한 디렉토리에서 동일한 파이썬 shebang, 동일한 권한 및 동일한 사용자 pi를 사용하여 유사한 파이썬 스크립트를 시도하고 작동합니다.

또한 ls파일을 볼 수 있으므로 파일이 실행되지 않는 이유를 모르겠습니다.


1
Windows에서`areadetect_movie_21.py '를 편집 했습니까? 당신이 한 경우이 참조 askubuntu.com/a/372691을 .
Arkadiusz Drabczyk

예, 일식에서 왜?
reggie

댓글을 추가 한 후 댓글을 수정했습니다. 이 askubuntu.com/a/372691을 참조하십시오 .
Arkadiusz Drabczyk 12

예 예 예 정말 효과가있었습니다. 감사합니다! 의견을 답변으로 변환하여 받아 들일 수 있습니까?
reggie

좋아, 내가 해냈어 :)
Arkadiusz Drabczyk

답변:


28

에서 AskUbuntu 에 의해 대답 :

": 해당 파일 또는 디렉토리 없음"오류 (콜론 앞에 아무것도 없음)가 표시되면 shebang 행이 Windows에서 편집 되었기 때문에 마지막에 캐리지 리턴이 있음을 의미합니다 (CR, LF를 줄 구분 기호). CR 문자는 쉘이 메시지의 시작을 인쇄 한 후 커서가 행의 시작 부분으로 다시 이동하게하므로 오류 메시지의 일부인 인터프리터 문자열을 종료하는 CR 이후의 부분 만 볼 수 있습니다.

CR을 제거하십시오. shebang 줄에는 Unix 줄 끝 이 있어야합니다 (줄 바꿈 만). 파이썬 자체는 CRLF 줄 끝을 허용하므로 다른 줄의 CR 문자는 아프지 않습니다. 반면 쉘 스크립트에는 CR 문자가 없어야합니다.

Windows 줄 끝을 제거하려면 dos2unix 를 사용할 수 있습니다 .

sudo dos2unix / usr / local / bin / casperjs

또는 sed :

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

Windows에서 스크립트를 편집해야하는 경우 Unix 줄 끝 (예 : 메모장보다 뇌가 덜한 것)에 대응하는 편집기를 사용하고 Unix 파일을 편집 할 때 Unix 줄 끝 (예 : LF 만)을 쓰도록 구성되어 있는지 확인하십시오.


1
필자는 Windows PC에서 메모장의 ssh를 통해 파이에서 파일을 열고 캐리지 리턴을 제거했으며 작동합니다.) 대단히 감사합니다.
reggie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.