到目前为止,我已经尝试了从py2app到cx_freeze的所有内容,试图让我的脚本可以分发。我想要在cx_freeze中构建应用程序,但是当我尝试运行应用程序时它会立即崩溃。我正在使用带有Python 2.7的Anaconda。我不确定这是否是问题的一部分。当我试图在前几次冻结脚本时,它会告诉我回溯中不存在Anaconda / tcl。所以我进入了Anaconda目录,找到了tcl8.5 wx和tk的文件夹,并将它们从lib复制到Anaconda目录。现在它确实构建了应用程序,但是回溯提供了很多这些.tcl不是Mach-O文件。
:error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: input file: build/SSD-Single Subject Designs-1.0.app/Contents/MacOS/tk/ttk/xpTheme.tcl is not a Mach-O file
奇怪的是我甚至无法获得一个简单的“hello world”脚本来冻结并成功运行。它以同样的方式崩溃。
这是我正在使用的设置文件:
import cx_Freeze
from cx_Freeze import setup, Executable
import matplotlib
import sys
base = None
if sys.platform == "win32":
base = "Win32GUI"
executables = [
cx_Freeze.Executable("FirstProduction.py", base = base)]
build_exe_options = {
'includes' : ['numpy', 'pandas', 'itertools', 'os', 'wx', 'csv', 'gspread'],
'packages' : ['matplotlib.backends.backend_wxagg'],
'excludes' : ['boto.compat.sys',
'boto.compat._sre',
'boto.compat._json','boto.compat._locale','boto.compat._struct','boto.compat.array','PyQt4'],
'include_files' : [(matplotlib.get_data_path(), "mpl-data")]
}
setup(
name = "SSD-Single Subject Designs",
version = "1.0",
description = "Single-Subject Graphing",
options = {'build_exe': build_exe_options},
executables = executables)
任何见解都会很棒。从设置文件中我可以看到,我正在使用wx matplotlib后端,以及相当多的不同模块。如果有人愿意尝试自己构建脚本,我可以上传我的脚本。