'python'을 명시 적으로 호출하지 않고 Python 스크립트 실행


39

데비안 리눅스를 사용하고 있습니다.

터미널 대신 () 대신 입력하여 모든 Python 스크립트 를 실행하도록 구성하는 방법이 있는지 궁금합니다 .script.pypython script.py

답변:


58

당신이해야 할 두 가지가 있습니다 :

  • 파일이 실행 가능한지 확인하십시오. chmod +x script.py
  • 커널에 어떤 인터프리터를 사용해야하는지 알리려면 shebang을 사용하십시오. 스크립트의 맨 위 줄은 다음과 같아야합니다.

    #!/usr/bin/python
    

    이것은 스크립트가 기본 파이썬으로 실행될 것이라고 가정합니다. 특정 버전이 필요한 경우 shebang에서 지정하십시오.

    #!/usr/bin/python2.7
    

이제 다음을 입력 할 수 있습니다 :

    ./script.py

스크립트가 현재 디렉토리에 있거나

    script.py

스크립트의 위치가 PATH에있는 경우 또는

    path/to/script.py

그렇지 않으면.


32
일반적으로 #!/usr/bin/env python사용자가 /usr/local/bin스크립트를 실행하려는 로컬 파이썬 빌드 (예 : in ) 가있는 경우 를 사용하는 것이 좋습니다 .
sapi

3
@sapi 데비안에 따르면 적어도 개발자 정책에는 해당되지 않습니다. 자신의 스크립트를 작성하는 경우 당연히 위험을 감수 할 수 있으며 명시적인 것이 좋습니다. 로컬을 원한다면 shebang에서 선택하십시오.
Paul

3
그것은 bash실행할 때 파일을 읽는 것이 아닙니다 ...
unperson325680

@progo 이것은 사실입니다-개선에서 도움이 될 것으로 생각되는 답변을보고 편집하여 개선을 언제나 환영합니다
Paul

그리고 당신은해야하지 ./script.py않을 것입니다script.py
Paul Draper

33

리눅스에서는 단순히 hashbang (일명 shebang)을 사용할 수 있습니다. 라인 추가

#!/usr/bin/python

기본 파이썬 인터프리터를 실행하려면

#!/path/to/python[x.x]

특정 버전을 사용하거나

#!/usr/bin/env python

환경에서 파이썬을 찾으려면.

스크립트를 실행 가능하게 만들어야합니다.

chmod +x script[.py] 

2

용도:

#!/usr/bin/env python

이를 통해 사용자가 사용할 것으로 예상되는 파이썬이 스크립트를 실행하는 파이썬이됩니다. 사용자가 virtualenv를 사용하여 특정 환경에서 특정 버전의 Python을 사용하는 경우 특히 중요합니다.


0

아래와 같이 스크립트 상단에 shebang 행을 사용하십시오.

! / usr / bin / python

스크립트를 실행할 적절한 파이썬 버전을 업데이트하십시오. 예를 들어 파이썬 3.6의 경우

! /usr/bin/python3.6

기본 통역사

! / usr / bin / python

참고 : 스크립트에 실행 권한이 있는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.