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


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.