파이썬 프로그램을 직접 실행하는 방법?


13

파이썬 프로그램을 직접 실행하는 방법?

gedit에서 .py 파일 (예 : mnik.py )을 만들었습니다 . 터미널에서 원활하게 실행됩니다.

지휘는 간다

python3 mnik.py

그러나 파일을 클릭 할 때마다 gedit로 열립니다. 클릭해서 직접 실행할 수 없습니다.

무엇을해야합니까?



4
@kasperd python3인자로 명령 행에 입력 하는 것은 파이썬 스크립트를 실행하는 훌륭한 방법입니다. (내 자신의 스크립트의 많은처럼, 또한 프로그램처럼 사실 터미널 및 인수를 필요로하는 프로그램을 실행하는 가장 쉬운 방법입니다 mercurial, sphinx). 내가 20 년 이상했던 일이 왜 적절한 방법이 아닌지 설명해 보시겠습니까?
Anthon

3
@kasperd 올바르게 작성된 Python 스크립트 (또는 프로그램)에는 shebang 줄이 없어도됩니다. 그렇지 않으면 여전히 모든면에서 파이썬 스크립트입니다. 이 스크립트는 Linux 쉘에서 원하는 단축 형식으로 실행할 수 없습니다. 파이썬 스크립트가 전혀 필요하지 않은 환경도 있으며, 두 번 클릭하여 스크립트를 시작할 수 있습니다.
Anthon

1
@kasperd 파이썬 스크립트를 사용하여 실행하기 위해 커널이 필요한 것은 명령 행에서 스크립트를 실행 ./scriptname한다는 주장을 검증하지 않습니다 python3. 이 파이썬 스크립트를 실행하고 다른 방법은 python3 ./mnik.py그냥 다른, 일을하는 적절한 방법은 또한 (그리고 적어도 당신은 방법이 아니라 python2이 가장 가능성이 같은 것을 python3을 얻는 답변까지)
안톤

1
<language> <script>를 사용하는 것은 완전히 유효하고 스크립트를 실행하는 방법입니다. 나쁜 연습을 제안하는 것은 찡그림해야합니다.
Jacob Vlijm

답변:


26

두 가지가 필요합니다.

  1. #!사용할 인터프리터를 OS에 알려주는 스크립트가 스크립트에 있어야합니다 . 귀하의 경우 코드의 첫 번째 줄은#!/usr/bin/env python3
  2. 파일 관리자를 열고 편집-> 환경 설정-> 동작으로 이동하여 실행 파일로 수행 할 작업을 선택해야합니다.

    여기에 이미지 설명을 입력하십시오

    1. 마지막으로 파일 자체에 실제로 실행 권한이 설정되어 있는지 확인하십시오. 터미널에서 할 수 chmod +x /path/to/script.py있고 GUI에서 파일을 마우스 오른쪽 버튼으로 클릭하고 속성-> 권한을 변경하십시오.

    여기에 이미지 설명을 입력하십시오

    여기에 이미지 설명을 입력하십시오

세방 선에 관한주의

첫 번째 줄을 shebang 줄이라고하며 #!; 다음에 오는 것은 코드를 읽을 통역사의 이름입니다. 경우 당신이 사용하는 python3당신이 중 하나를 사용할 수 있습니다 #!/usr/bin/python3또는 #!/usr/bin/env python3휴대 성. 파이썬 버전과 관련된 코드를 사용하지 않는 경우-사용하십시오.#!/usr/bin/env python

스크립트 출력에 대한 참고 사항 :

스크립트가 출력을 콘솔에 인쇄하는 경우 터미널 창이 있거나 또는 같은 GUI 대화 상자를 사용해야합니다 zenity. Run in Terminal코드를 보려면 옵션을 사용 하십시오. 콘솔 출력을 보지 않고 스크립트가 무언가를하도록하려면 Run옵션을 사용하십시오 .

여기에 이미지 설명을 입력하십시오

또한 sys.argv[1]스크립트 와 같이 명령 행 매개 변수 가있는 경우 터미널 창을 열지 않으면 매개 변수를 설정할 수 없습니다.


1
@PriyadarshiPaul Files런처의 프로그램 과 동일 합니다. Windows에서 말하기 파일 탐색기 또는My Computer
Sergiy Kolodyazhnyy

@PriyadarshiPaul 그것은 nautilus터미널에 있습니다
grooveplex


3
#!/usr/bin/env python대부분의 우분투 시스템에서 Python2를 호출합니다. Python3 용으로 작성된 Python 스크립트를 Python2와 호환 가능하게 만들 수 있지만 OP가 그렇게했다고 가정하지는 않습니다. #!/usr/bin/env python3더 적절한 shebang처럼 보인다
Anthon

1
왜 우리는 여기에 아치 리눅스를 가지고 있습니까? 어쩌면 나는 조금 의미가 있을지 모르지만 우분투를 여기서 이야기하고 있습니다. 우분투에서 기본적으로 python은 python2.7에 연결되어 있습니다. 소프트웨어를 개발하는 경우 OS의 기본 버전 이외의 것을 사용하는 경우 명시 적으로 지정하는 링크가 무엇인지 알고 있어야합니다. 물론, 우리는 각각의 개별적인 질문에 부응 할 수 있지만, 큰 소리로 울부 짖기를 원한다면, 그것을 올바르게하십시오.
Sergiy Kolodyazhnyy

3

첫 번째 줄에서 코드를 실행하려면 프로그램 위치를 입력 한 다음 사용 권한을 변경하여 스크립트를 실행 파일로 실행하도록 설정해야합니다. 이것은 터미널이나 다른 스크립트에서 응용 프로그램을 시작한다고 가정합니다.

파이썬 설치 찾기

$ which python
/usr/bin/python

프로그램 위치를 프로그램의 맨 위 줄 #!에 앞에 추가하십시오.

#!/usr/bin/python

# Python code goes here....

실행 권한을 갖도록 Python 스크립트 설정

$ chmod 700 test.py

이제 스크립트를 직접 실행할 수 있습니다

$ ./test.py

test.py의 코드 목록

#!/usr/bin/python

print "test"

2

입력하지 않고이 프로그램을 실행 python3 mnik.py하려면 스크립트를 실행 가능하게하고 실행에 사용되는지 확인해야 python3합니다.

처음으로 당신이 할 수있는 일

 chmod +x mnik.py

두 번째 는 python3을 호출 하는 shebang 행 스크립트의 첫 번째 행으로 추가하여 수행 할 수 있습니다 . python3과 함께 제공된 모든 Ubuntu 시스템에서 맨 위에 다음 줄을 추가하여 python3을 얻을 수 있습니다.

#!/usr/bin/env python3

두 변경 후에는 입력 할 수 있습니다 /path/to/mnik.py, ./mnik.py또는 단지 mnik.py(후자는 PATH에 있어야 스크립트가 필요합니다).

이러한 변경을 할 경우 당신은 또한 이름을 바꾸는 것을 고려할 수 있습니다 mnik.pymnikPyPI에 게시 명령 파이썬 패키지와 일반적인 관행입니다.


좋아,이 중 아무 것도 작동하지 않습니다
Priyadarshi Paul

"확인"은 무엇입니까? "이들"은 무엇을 의미합니까?
Anthon

그것은 ** usr / bin / env : 나쁜 해석기 : 그런 파일이나 디렉토리가 없습니다 **
Priyadarshi Paul

최소한 /앞쪽에 누락이 있습니다. 귀하의 의견에 "It"이 무엇인지 설명하십시오. bash 쉘입니까? Windows Command.com입니까? 프로그램에서 무엇을 실행하고 어떤 명령 줄 구문을 사용합니까?
Anthon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.