【问题标题】:.app created with cx_freeze instantly closing on launch使用 cx_freeze 创建的 .app 在启动时立即关闭
【发布时间】:2017-01-22 09:56:33
【问题描述】:

我正在 python 中制作一个非常简单的应用程序,使用 Tkinter 作为 GUI,并使用 cx_freeze 来构建它。
这一切都在一个简单的“sleep.py”文件中。

cx_freeze使用的setup.py文件如下:

from cx_Freeze import setup, Executable

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

setup(name='Sleep Calculator',
      version='0.90',
      description='Sample cx_Freeze script',
      executables=executables
      )

sleep.py 文件正在正确启动:
- 从终端在 MacOS 中启动时
- 在 MacOS 中使用 python3 setup.py build
构建时 - 在 Windows 中使用 python3 setup.py build_exe 构建,然后手动将 tkinter 文件复制到 cx_freeze 创建的构建文件夹中

所以我有一个可以在 Windows 和 Mac 上运行的 sleep.py 文件,一个在 MacOS 上运行的脚本,以及一个在 Windows 上运行的 EXE。

但是,当尝试使用 python3 setup.py bdist_mac 构建到 .app 时,我得到的应用在启动时会立即关闭。

在启动过程中,我在控制台中收到的唯一消息是
“从用户 CFPrefsD 加载首选项以进行搜索列表”

在构建期间,我得到了多个 fatal error: /Library/Developer/CommandLineTools/usr/bin/otool: internal objdump command failed错误。 Xcode 没有安装,但是 CommandLineTools 安装了。

目前我对 OS X 几乎一无所知,因此欢迎任何帮助,
谢谢!

【问题讨论】:

    标签: python macos cx-freeze


    【解决方案1】:

    我遇到了同样的问题,带有 cx_freeze 的应用程序一打开它就会关闭,但在包中运行可执行文件会起作用。

    通过打开构建的包并编辑 info.plist 文件为我解决了这个问题。

    添加捆绑标识符后,它会按原样启动。

    <key>CFBundleIdentifier</key>
    <string>My App</string>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2016-09-12
      相关资源
      最近更新 更多