본문 바로가기
SW 개발/Python

Python 에러: /usr/bin/env: `python3\r': 그런 파일이나 디렉터리가 없습니다

by Kibua20 2020. 7. 3.

Python code를  *.py 파일에 작성하고 terminal에서 실행하는 방법은 python 명령어 뒤에 py 파일을 인자로 전달하거나, 일반 실행 파일처럼./test.py로 직접 실행할 수 있다.   test.py 파일을 바로 실행하기 위해서는 interpreter 지정 ( #!/usr/bin/env python3)있어야 하고, 실행 권한이(chmod 766) 있어야 한다. 

 

#python으로 test.py을 실행하는 방법

$ python3 test.py 

$ ./test.py 

 

test.py 파일

#!/usr/bin/env python3

# -*- coding:utf-8 -*-

에러 메시지

터미널에서 test.py 을 실행했을 때   "/usr/bin/env: `python3\r': 그런 파일이나 디렉터리가 없습니다"라는 에러 발생

   kibua@ubuntuPC:~/DevDocs/$ ./test.py
   /usr/bin/env: `python3\r': 그런 파일이나 디렉터리가 없습니다

발생 원인

문제가 되는 test.py 파일이 Window/Dos  줄 바꿈(line ending) 스타일로 생성/저장된 상태에서 리눅스에서 해당 파일을 실행하는 경우 문제 발생 

 

  • Windows/Dos 스타일 라인 줄 바꿈:  CR(\r) + LF(\n)
  • 리눅스/MAC 스타일의 라인 줄바꿈: LF (\n)

수정 방법

dos2unix tool을 사용해서 윈도우/DOS 스타일의 줄 바꿈을 리눅스 스타일로 변환하여 저장한다.  Python 뿐 아니라 Java와 같이 다른 리눅스 프로그램에도 '\r' 발생할 수 있고, 이 경우 dos2unix 를 활용할 수 있다.

 

$ sudo apt install dos2unix

$ dos2unix test.py

 

dos2unix 설명

 

참고 내용) https://askubuntu.com/questions/896860/usr-bin-env-python3-r-no-such-file-or-directory

 

관련글

[모바일/Python] - Python 에러: /usr/bin/env: `python3\r': 그런 파일이나 디렉터리가 없습니다

[모바일/Python] - Python 표준 입출력(stdin/stdout) 활용 - 리눅스 프로그램과 연동

[모바일/Python] - Python JSON 사용 시 TypeError: Object of type bytes is not JSON serializable

[모바일/Python] - Python smtplib 사용한 email 발송 예제 (gmail)

[모바일/Python] - Python SyntaxError: Non-ASCII character in file on, but no encoding declared

[모바일/Python] - Python 2.7과 3.8호환성: a bytes-like object is required, not 'str'에러 수정

[모바일/Android] - repo 실행 시 DeprecationWarning: imp module 대처법

[모바일/Python] - [Tips] Python: XML Parsing 시 multiple elements on top level

[모바일/Python] - [Tips] Python 에서 XML comment 처리 - Sample code 제공

[모바일/Python] - [Tips] XML 에서 예약/특수 문자 처리




댓글2