2009-11-27 5 views
3

GUI Tkinter 기반 앱을 시작할 때 터미널을 숨기려고하지만 OSX에서 app.py 파일을 두 번 클릭하면 터미널 창이 나타납니다. 확장자를 .pyw로 바꾸려고 시도했지만/usr/bin/pythonw로 시작하려고 시도했지만 터미널 창은 여전히 ​​나타납니다.OSX에서 Tkinter 앱용 콘솔 숨기기

나는 아래의 try/except를 추가하려고 시도했으나 실행했을 때 나타나는 터미널 창에 'invalid command name "console"오류가 표시됩니다.

from Tkinter import * 

class MainWindow(Tk): 
    def __init__(self): 
     Tk.__init__(self) 
     try: 
      self.tk.call('console', 'hide') 
     except TclError, err: 
      print err 

win = MainWindow() 
win.mainloop() 

터미널 창이 나타나지 않도록 숨길 방법을 찾을 수 없었습니다. 아무도 아이디어 없어?

답변

7

OS X에서 .py 파일을 더블 클릭하면 OS X Python과 함께 제공되는 Python Launcher.app을 통해 Python GUI 인스턴스를 시작할 수 있습니다. Finder에서 .py 파일을 선택하고 Get Info을 실행하면 확인할 수 있습니다. Python Launcher는 Terminal.app 명령을 통해 Python을 시작하는 매우 단순한 응용 프로그램입니다. 자신 만의 Python GUI 앱을 직접 실행하려면 선호하는 방법은 py2app을 사용하여 간단한 앱을 만드는 것입니다. 간단한 자습서 here이 있습니다.

편집 :

이 물론 다른 방법이 있지만, 대부분 그 중 하나는 간접 더 수준을 추가하는 것입니다. 정상적인 실행 가능한 "두 번 클릭 가능한"응용 프로그램을 만들려면 일종의 응용 프로그램 구조가 필요합니다. 그것이 바로 py2app에서 직접 만들 수 있습니다.

매우 간단한 방법은 AppleScript 편집기에서 실행 프로그램을 만들 수 있다는 것입니다. AppleScript 편집기에서 :

do shell script "/path/to/python /path/to/script.py &> /dev/null &" 

다음 Save As.. : OS에서

  • /Applications/Utilities/AppleScript Editor.app X 10.6

  • /Applications/AppleScript/Script Editor.app 10.5

이 유사한 새로운 스크립트를 만들 File Format -> Application. 그런 다음 다른 앱을 실행하는 두 번 클릭 할 수있는 앱이 있습니다. Apple의 Automater.app과 비슷한 것을 만들 수 있습니다. 하지만, 커버 아래에, 그들은 당신을 위해 py2app과 비슷한 것을하고 있습니다. 더 많은 레이어가 맨 위에 있습니다.

+0

감사합니다. 그래서 단순히 py2app를 사용하지 않고 터미널을 시작하는 것을 억제 할 수있는 방법이 없다고 말하는 것이 안전할까요? – cdwilson

+0

위의 EDIT를 참조하십시오. –

0

'콘솔 숨기기'는 OS X에서 터미널을 숨기지 않습니다. Tk의 내장 콘솔을 숨 깁니다. 실제로 MacOS Classic에서 유래되었지만 Windows에서는 여전히 많이 사용됩니다.

1

AppleScript 응용 프로그램을 사용하여 Python 응용 프로그램을 시작하려고 시도했을 때 Ned Deily, 내 경우의 대답에 추가하면 처음에는 작동하지 않았습니다. 나는 그것이 어떤 종류의 인코딩 오류 (UTF-8을 사용하고 있으며 과거에는 UTF-8로 설정해야한다고 느꼈다)와 관련이 있다는 것을 발견했다.

그래서, 추가 조사 후, I는 (필요 python3 및 파이썬 애플리케이션의 경로를 조정) I 다음 코드 애플 스크립트 프로그램을 생성함으로써이를 달성 할 수 있음을 발견했다

do shell script "export LC_ALL=en_US.UTF-8; export LANG=en_US.UTF-8; /usr/local/bin/python3 '/Users/USER/FOLDER/SCRIPT.py' &> /dev/null &"

그것은 터미널 윈도우없이 파이썬 어플리케이션을 시작합니다. AppleScript 응용 프로그램은 평소와 같이 사용자 정의 아이콘으로 개인화 할 수 있으며 Dock에 배치 할 수 있습니다. 클릭하면 Dock에 표시되지만 보이지 않는 창없이 Python 인터프리터가 시작됩니다.

다른 사용자에게 유용 할 수 있습니다.

관련 문제