隐藏控制台Tkinter应用程序上的OS x
题
我试图隐藏的终端当我启动一个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上仍然常用)。