无法在 Mac OS X Yosemite (10.10) 上使用 cx_Freeze 构建独立应用程序

Failed to build stand-alone application on Mac OS X Yosemite (10.10) with cx_Freeze

我尝试在 Mac OS X Yosemite 10.10 上使用 cx_Freeze 4.3.1 构建应用程序,但没有成功。我使用 python 2.7 版并使用 Tkinter 作为我的 GUI 进行开发。如果我在终端上使用 python setup.py bdist_mac,构建过程会失败并显示以下错误消息:

[Errno2]/Library/Frameworks/Tcl.framework/versions/8.5/TCL no such file or directory

已安装 Tcl/Tk 的最新版本 (8.5)。

我的安装文件如下所示:

from cx_Freeze import setup, Executable
build_exe_options = {
"includes": [],
"packages": [],
'excludes' : ['collections.abc', 'urllib.sys'],
"include_files": []}

setup(
    name = "application",
    version = "0.1",
    description = "",
    author = "",
    options = {"build_exe": build_exe_options},
    executables = [Executable("applicaton.py")]
)

有谁知道我可以做些什么来让它工作?提前致谢!

我建议你在这里做一些事情(希望能解决我能确定的两个问题):

  • 使用MacOSX的系统Python(不推荐
  • 使用旧的且未维护的 cx_Freeze

首先让我们修复您的 Python 安装!推荐的方法是使用 Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew update
brew install python

现在你应该在 /usr/local 中安装好 Python,它与你的 Mac OS X 系统 Python 是分开的,所以你可以保留东西干净和分开。您还应该遵循上述安装中的任何推荐说明。通常这涉及修改您的 $PATH:

export PATH="/usr/local/bin:$PATH"

注意:通常您应该根据终端的配置方式修改 $HOME/.bashrc$HOME/.profile

您现在应该也可以使用 pip 表格 /usr/local/bin/pip

现在开始 cx_freeze -- The recommended and more maintained approach these days is to use pyInstaller 的更好替代品:

pip install pyinstaller
pyinstaller -F /path/to/my/script.py

对于更复杂的要求和构建,请按照 Using sepc files

上的 pyinstaller 文档进行操作

祝你好运!

注意:这个应该也希望能解决你的TCL/TK问题!