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

时间:2015-05-22 00:52:33

标签: python macos tkinter 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没有这样的文件或目录

已经安装了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")]
)

有谁知道我能做些什么才能让它发挥作用?提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

  • 使用Mac OS X的系统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中安装一个与Mac OS X系统Python分开的Python,这样你就可以保持干净和分离。您还应该遵循上述安装中的任何建议说明。通常,这涉及修改$PATH

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

注意:通常您应该修改$HOME/.bashrc$HOME/.profile,具体取决于您配置终端的方式。

您现在也可以使用pip表单/usr/local/bin/pip

现在可以更好地替换cx_freeze - 目前推荐且更加维护的方法是使用pyInstaller

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

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

上的pyinstaller文档 祝你好运!

注意:应该也可以解决您的TCL / TK问题!