여러 유닉스 계열 릴리스에서 실행해야하는 스크립트를 작성하고 있습니다. 이들은 Python 2.x로 작성되었습니다.Hashbang 스크립팅 : Python 2 인터프리터를 얻는 방법?
불행히도 일부 최신 릴리스에서는이 "파이썬"대신 "파이썬 2"라는 이진 버전을 호출했습니다. 따라서, "#!/usr/bin/env python"은 제대로 설치된 파이썬 인터프리터를 찾기 위해 작동하지 않습니다. 어느 쪽이든 버전 3 통역사 (불량) 또는 전혀 통역사가 없습니다 (악화)
파이썬 스크립트를 작성하는 영리한 방법이 설치되어 있으면 파이썬 인터프리터와 함께로드됩니다. 그렇지 않으면 파이썬 인터프리터 if 설치 됐어? 나는 "파이썬"이 파이썬 3 일 때를 탐지하기 위해 다른 메커니즘을 사용해야 할 것이다. 그러나 그 시점에서 파이썬과 비슷한 환경에 있기 때문에 살아갈 수있다.
나는 리플 발사기를 쓰고 "findpython2"라고 쓰고 그것을 #로 사용할 수 있다고 상상해 봅니다! 이 스크립트에 대한 인터프리터는 findpython2를 검색 경로에 설치해야한다는 것을 의미합니다. 절대적으로 하위 최적 인이 스크립트는 절대 참조로 호출되기 때문에 경로에 있지 않습니다.
경로에 특정 프로그램의 존재 여부를 테스트 할 수있는 더 좋은 방법을 알고있는 사람은 알고 싶습니다. – ninjalj
도 사용할 수 있습니다 :'$ (type -p python2) && interp = python2 || interp = 파이썬; exec $ interp "$ 0"$ {1 + "$ @"} ' –
이것은 실제로 질문에 응답합니다. 단! 또한 환상적인 끔찍한 해킹 :-) –