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
참고 내용) 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 제공
댓글