Python 对使用PyInstaller创建的可执行文件从dock隐藏终端

Python 对使用PyInstaller创建的可执行文件从dock隐藏终端,python,macos,python-2.7,packaging,pyinstaller,Python,Macos,Python 2.7,Packaging,Pyinstaller,我正在使用PyInstaller(v2.1)为不同的平台捆绑一个Python应用程序。我正在为我的GUI使用一个外部工具,它调用PyInstaller捆绑的可执行文件,该文件将充当后端服务器 不过,我在Mac(OS X 10.10)上捆绑时遇到了问题。当从GUI工具调用my PyInstaller捆绑的Unix可执行文件(作为后台进程运行)时,它成功地启动了一个窗口,但不幸的是,在dock中还有一个终端图标 我在构建可执行文件时提供了--no console选项,debug=False,但没有任

我正在使用PyInstaller(v2.1)为不同的平台捆绑一个Python应用程序。我正在为我的GUI使用一个外部工具,它调用PyInstaller捆绑的可执行文件,该文件将充当后端服务器

不过,我在Mac(OS X 10.10)上捆绑时遇到了问题。当从GUI工具调用my PyInstaller捆绑的Unix可执行文件(作为后台进程运行)时,它成功地启动了一个窗口,但不幸的是,在dock中还有一个终端图标

我在构建可执行文件时提供了--no console选项,debug=False,但没有任何效果。这似乎在Windows上非常有效

我是否应该考虑一些PyInstaller选项来防止可执行图标在Dock上弹出?或者我应该考虑一些OSX的选项吗

总而言之:我希望防止从外部应用程序调用时后台进程出现在dock(OS X上)。

另一个问题可能是:创建纯后台应用程序的Pyinstaller指令是什么

注意:我还尝试将我的python应用程序捆绑为.app,并尝试处理*.plist文件,但这也没有帮助(除了它似乎不正确,因为它只能作为后台进程运行)

以下是plist文件的外观:

...
<plist version="1.0">
<dict>
    ...
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>LSBackgroundOnly</key>
    <string>1</string>
    <key>LSUIElement</key>
    <true/>
</dict>
</plist>
。。。
...
CbundlePackageType
应用
LSBackgroundOnly
1.
LSUIElement
*我还尝试将我的python应用程序捆绑为.app,并尝试处理.plist文件

如果你能说出你在这里实际做了什么,那会有帮助的。通常,键LSUIElement设置为true时,应该执行您想要的操作。作为国家:-

指定应用程序是否为代理应用程序,即不应出现在Dock或Force Quit窗口中的应用程序。有关详细信息,请参见LSUIElement


的PyInstaller,包括重新编译的引导加载程序和补丁,为我解决了这个问题

我已经更新了我的问题。使用这些设置似乎没有任何效果。我使用的是约塞米蒂,所以这些设置可能会有所不同吗?我还想强调一个事实,即最终用户永远不会点击python应用程序。它意味着由最终用户将与之交互的另一个应用程序调用。请尝试使用字符串作为值,如下所述:不工作。图标仍然会弹出:(这是目前的设置…
CbundlePackageType APPL LSBackgroundOnly 1 LSUIElement 1
注意,由于--no console/--no window指令,没有弹出窗口。但是dock图标会弹出窗口。pyinstaller是否以某种方式覆盖了此设置?这听起来像是pyinstaller的问题,因为LSUIElement应该可以工作,我也会使用它。)约塞米蒂。