使用cx_freeze创建的.app会在启动时立即关闭

时间:2017-01-22 09:56:33

标签: python macos cx-freeze

我在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中启动时 - 使用python3 setup.py build时在MacOS中构建 - 使用python3 setup.py build_exe在Windows中构建,然后手动将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,所以欢迎任何帮助 谢谢!

1 个答案:

答案 0 :(得分:0)

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

通过打开内置程序包并编辑info.plist文件,为我解决了该问题。

添加捆绑包标识符后,它应按预期启动。

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