본문 바로가기

카테고리 없음

#!/usr/bin/env 를 쓰는 이유.

생활코딩 이고잉님의 파이썬 수업을 듣다가 스크립트 파일의 최상단에 #!/usr/bin/env python3 를 작성하는 내용이 있었다.

주석이라는 뜻인가? url도 아니고 usr? bin은 또 뭐지? 해서 한 번 구글에 검색해보았다(기승전검색 ).

 #! ---> shebang:sharp(#) 와 bang(!)의 합성어.

일단 #!은 주석이 아니라 하나의 기호이다. 

#! 뒤에 나오는 것은 경로명으로 명령어들을 해석할 프로그램의 위치를 가리켜준다.

하지만 여러 사람이 한 파일을 공유하는 경우에, 사람마다 컴퓨터에서 파이썬의 위치가 다를 수 있다.

내 컴퓨터에서 python의 위치가 /usr/bin/python라서

절대경로를 /usr/bin/python 이라고 저장했다고 가정해보자.

그런데 A의 컴퓨터에서 파이썬은 /usr/local/python 에 있을 수 있고

B의 컴퓨터에서 파이썬은 /bin/python 에 있을 수 있다.

이러면 타인의 컴퓨터에서 인터프리터의 위치를 찾을 수가 없어서 실행이 안될 수 있다.

이럴때  #!/usr/bin/env 를 사용하면

절대경로에 상관없이 인터프리터의 위치를 자기절로 찾아서 실행해준다.

참 편리한 것 같다.