我试图隐藏的终端当我启动一个GUI Tkinter基础的应用程序,但是当我双击app.py 文件在OS x,终端窗口。我已经尝试改变的扩展。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()

我没能找到任何方式隐藏的终端从窗口出现。任何人有任何想法?

有帮助吗?

解决方案

通过双击 .py 文件在OS X,你有可能启动一个Python gui实例通过 Python Launcher.app 提供与OS X蟒蛇。你可以验证,通过选择 .py 文件中的搜索和做 Get Info 上。蟒蛇的发射器是一个非常简单的志同道合的应用程序,开始Python通过一个终端。应用程序的命令。直接发射你自己的蟒蛇GUI应用程序,优选办法是创建一个简单的应用程序的使用 py2app.有一个简短的教程 在这里,.

编辑:

还有其他的方式,当然,但最有可能的任何人将增加更多的层次的间接.做一个正常台发射的"双-可点击的"应用,需要某种程序的结构。那是什么 py2app 可以让你创建的。

一个非常简单的志同道合的备选方案是利用AppleScript编辑的能力,以创建一个发射程序。在 AppleScript 编辑:

  • /Applications/Utilities/AppleScript Editor.app 在OS X10.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.然后你只有一双可点击的应用程序,将启动另一程序。你可以建立类似的东西苹果的 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&"

它启动没有任何终端窗口的Python应用程序。然后可以像往常一样使用自定义图标对AppleScript应用程序进行个性化,并将其放置在Dock中。单击时,它将启动Python解释器,它仍然显示在Dock中,但没有可见的窗口。

我认为这可能对其他用户有用。

'console hide'不会隐藏OS X中的终端。它隐藏了Tk的内置控制台,这实际上是MacOS Classic时代的遗留物(在Windows上仍然常用)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top