.py 확장자없이 터미널에서 파이썬 스크립트 실행


14

단순히 script 를 입력하여 터미널에서 python script script.py 를 호출하고 싶습니다 . 이게 가능해? 그렇다면 어떻게?

#! / usr / bin / env python 을 스크립트 맨 위에 추가 하여 python script.py 를 입력하지 않아도 스크립트를 실행하려면 접미사 .py 를 추가해야합니다 .

답변:


21

유닉스 / 리눅스 파일 시스템은 윈도우와 같은 확장명에 의존하지 않습니다. .py파일을 실행할 때 파일 끝이 필요하지 않습니다 .

인터프리터로 파일을 호출하여 파일을 실행할 수 있습니다.

python ScriptFile

또는 실행 파일로 표시하고 첫 번째 줄에 인터프리터를 정의하여 (예 :) #!/usr/bin/python.

다음을 사용하여 파일을 실행할 수없는 경우 :

/Path/to/ScriptFile

와 권한을 확인

ls -l ScriptFile

실행 가능 플래그를 추가해야 할 수 있으며 실행 플래그 chmod가 실행됩니다.

사용자 정의 스크립트를 정기적으로 사용하는 경우이를 저장하는 디렉토리가 PATH환경 변수에 추가되어 있는지 확인하십시오 .


1
파일은 ~ / workspace / python에 있습니다. 경로에 ~ / workspace / python을 추가하고 sudo chmod a + x script.py "를 실행했으며 스크립트 맨 위에 shebang 줄 (#! / usr / bin / env python)을 추가했습니다. * script.py를 입력하면 스크립트를 실행할 수 있지만 스크립트 만 입력 해도 작동하지 않습니다.
jmau5

2
유닉스 / 리눅스에서는 모든 것이 파일이며 파일 이름에 응답합니다. Script.py를 스크립트로 호출 할 수 없습니다. script.py에서 script로 파일 이름을 바꾸면 문제가 해결됩니다.
Patrick

죄송합니다, 오해했습니다! 모든 것이 해결되었습니다. 감사합니다!
jmau5

5

.py확장은 스크립트를 실행하는 데 필요하지 않습니다. 스크립트를 실행 가능하게 만들고 (예 :을 실행 chmod a+x script하여) shebang 행 ( #!/usr/bin/env python)을 추가하기 만하면됩니다 .


Patrick의 답변에 대한 내 의견을 참조하십시오.
jmau5

4

옵션으로 스크립트 ( .py파일) 용 래퍼를 만들 수 있습니다 .

예를 들어, 스크립트 를 랩핑 runme.py할 새 파일 runme을 작성할 수 있는 스크립트가 있습니다.

#!/usr/bin/env python
import runme

그런 다음 쉘 을 호출하여 runme.py기능 을 호출하십시오 runme.

이것은 다중 플랫폼 스크립트에 유용합니다. Windows 플랫폼 에서는 헤더에 .py확장자와 shebang 없이 이름으로 호출 할 파일을 지정할 수 있지만 Linux 플랫폼에서는 할 수 없으므로 래퍼가 나옵니다.

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