如何在 OSX 上使用 cx_Freeze 隐藏控制台

Posted

技术标签:

【中文标题】如何在 OSX 上使用 cx_Freeze 隐藏控制台【英文标题】:how to hide console using cx_Freeze on OSX 【发布时间】:2018-02-23 23:05:02 【问题描述】:

我使用 tkinter 创建了简单的 GUI,然后我使用 cx_Freeze 创建了 .exe 文件,当我打开 .exe 文件时,它显示控制台而不是 GUI 窗口。我想要的是隐藏控制台,只是为了显示 GUI 窗口。

    python 3.6.3 cx_Freeze 5.1.1 平台:macOS Sierra 10.12

hello.py 文件代码:

from tkinter import Tk, Label, Button, BOTTOM
root = Tk()
root.title('Button')
Label(text='Hello').pack(pady=15)
Button(text='Button').pack(side=BOTTOM)
root.mainloop()

setup.py 文件代码:

from cx_Freeze import setup, Executable
base = None
executables = [
         Executable('hello.py', base=base)
              ]
setup(name='simple_Tkinter',
  version='0.1',
  description='Sample cx_Freeze Tkinter script',
  executables=executables
  )

【问题讨论】:

可能的解决方法使用网站,我绝不承担任何责任,py2exe.net 【参考方案1】:

在你的 setup.py 文件中添加这个(主要问题)

import sys

base = 'Win32GUI' if sys.platform == 'win32' else None

这也是(以防万一)

buildOptions = dict(
    packages=['scrollFrame', 'searchSetup', "tkinter", "threading", "sqlite3", "openpyxl", "re"],
    include_msvcr=True,
    excludes=['numpy', 'scipy', 'matplotlib', 'pandas', 'jinja2', 'flask']
)

在你的 setup() 函数中添加这个

options=dict(build_exe=buildOptions)

完整代码-

from cx_Freeze import setup, Executable

# To compile for windows use---> python setup.py bdist_msi
# To compile for mac use---> python setup.py bdist_dmg

buildOptions = dict(
    packages=['scrollFrame', 'searchSetup', "tkinter", "threading", "sqlite3", "openpyxl", "re"],
    include_msvcr=True,
    excludes=['numpy', 'scipy', 'matplotlib', 'pandas', 'jinja2', 'flask']
)

import sys

base = 'Win32GUI' if sys.platform == 'win32' else None

executables = [
    Executable('MedSort.py', base=base)
]

setup(name='MedSort',
      version='2.0',
      description='Medical Indent management',
      options=dict(build_exe=buildOptions),
      executables=executables)

你可以找到相同here的解决方案

【讨论】:

谢谢!对我来说,真正的改变是您提出的建议:python setup.py bdist_msi,适用于 Windows 和 Mac:python setup.py bdist_dmg。没想到和linux中的python setup.py build不一样!

以上是关于如何在 OSX 上使用 cx_Freeze 隐藏控制台的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 cx_Freeze 冻结双模式(GUI 和控制台)应用程序?

sh 在Mac OS X上快速显示/隐藏隐藏文件#osx

如何在 Windows 10 上使用 Cx_Freeze 制作 exe,包括 PyQt5 和 OpenCV

如何在使用 cx_Freeze 6.0b1 冻结的 Linux 上修复 python 3.7.3 脚本上的 numpy 依赖项路径?

如何将 cx_Freeze 可执行文件的 .pyd 和子文件夹与可执行文件分开放在一个文件夹中

使用 cx_Freeze - 如何在 .exe 中包含所有必要的文件?