문제

Gui Tkinter 기반 앱을 시작할 때 터미널을 숨기려고하지만 OSX에서 App.py 파일을 두 번 클릭하면 터미널 창이 나타납니다. 확장을 .pyw로 변경하려고 시도하고/usr/bin/pythonw로 시작하려고 시도했지만 터미널 창이 여전히 나타납니다.

아래에 시도를 추가하려고 시도했지만 실행하면 터미널 창에서 '유효하지 않은 명령 이름'콘솔 ''오류가 발생합니다.

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()

터미널 창을 숨기는 방법을 찾을 수 없었습니다. 아무도 아이디어가 있습니까?

도움이 되었습니까?

해결책

a .py OS X의 파일은 Python Launcher.app OS X Pythons와 함께 제공됩니다. 선택하여 확인할 수 있습니다 .py 파인더에 파일을 파일하고 수행합니다 Get Info 그 위에. Python Launcher는 Terminal.App 명령을 통해 Python을 시작하는 매우 간단한 생각 앱입니다. 자신의 Python GUI 앱을 직접 시작하려면 선호하는 접근 방식은 사용한 간단한 앱을 만드는 것입니다. py2app. 간단한 튜토리얼이 있습니다 여기.

편집하다:

물론 다른 방법이 있지만, 아마도 그 중 어느 누구도 더 많은 수준의 간접을 추가 할 것입니다. 정상적인 발사 가능 "이중 클릭 가능"애플리케이션을 만들려면 일종의 앱 구조가 필요합니다. 그게 뭐야 py2app 직접 만들 수 있습니다.

매우 간단한 대안은 AppleScript 편집기의 런처 앱을 만들 수있는 능력을 활용하는 것입니다. 에서 AppleScript 편집자:

  • /Applications/Utilities/AppleScript Editor.app OS X 10.6에서

  • /Applications/AppleScript/Script Editor.app 10.5에서

이와 유사한 새 스크립트를 만드십시오.

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

그리고 Save As.. ~와 함께 File Format -> Application. 그런 다음 다른 앱을 시작할 두 번 클릭 가능한 앱이 있습니다. Apple과 비슷한 것을 만들 수 있습니다 Automater.app. 그러나 표지 아래에서 그들은 무엇과 비슷한 일을하고 있습니다. py2app 더 많은 레이어가 상단에 있습니다.

다른 팁

Ned Deily의 답변을 추가하면 AppleScript 응용 프로그램을 사용하여 Python 애플리케이션을 시작하려고 할 때 처음에는 작동하지 않았습니다. 나는 그것이 일종의 인코딩 오류와 관련하여 무언가가 있다는 것을 발견했습니다 (UTF-8을 사용하고 있으며 과거에는 UTF-8로 구성해야 할 필요가 있다고 생각했습니다).

따라서 추가 조사 후 다음 코드로 AppleScript 응용 프로그램을 만들어이를 달성 할 수 있음을 발견했습니다 (Python3의 경로 및 필요에 따라 Python 응용 프로그램의 경로 조정).

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 응용 프로그램은 평소와 같이 사용자 정의 아이콘으로 개인화 할 수 있으며 도크에 배치 할 수 있습니다. 클릭하면 Python Intepreter가 시작되며 여전히 도크에 표시되지만 눈에 보이는 창이 없습니다.

나는 이것이 다른 사용자에게 유용 할 수 있다고 생각합니다.

'콘솔 숨기기'는 OS X에서 터미널을 숨기지 않습니다. TK의 내장 콘솔을 숨 깁니다. 이는 실제로 MacOS 클래식 시절의 유물이며 여전히 Windows에서 일반적으로 사용됩니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top