【发布时间】:2014-04-04 13:27:34
【问题描述】:
情况:
在我的 Mac Os 10.8.5 中,我可以使用最新的 cx_freeze(-4.3.2) 的 python2.7 和 python2.7-32。
我需要 cx_freeze 来选择 python2.7-32 版本,以便我的可执行应用程序可以使用 32 位版本的 OpenCV。
到目前为止,所有使用 cx_freeze 脚本的尝试都表明它捆绑了 python2.7(这是 64 位)并且应用程序无法执行:“cv2.so: mach-o, but wrong architecture” (如果您尝试使用 64 位的 Python 解释器导入 32 位内置 OpenCV,则会遇到相同的错误)
有没有办法“强制” cxfreeze 在它生成的可执行文件中捆绑安装的特定 python 版本(在本例中为 python2.7-32)?
编辑:
我还尝试使用 32 位从源代码构建 cx-freeze:
python2.7-32 setup.py build;
python2.7-32 setup.py 安装
不管怎样,生成的app还是64位版本:
$ python2.7-32 setup.py bdist_dmg
$ 文件捕获基础
capturebasic:Mach-O 64 位可执行 x86_64$ arch -i386 ./capturebasic
拱:posix_spawnp:./capturebasic:可执行文件中的 CPU 类型错误
编辑2:
你从sourceforge下载的Mac的cx_freeze好像只有64位:
http://sourceforge.net/projects/cx-freeze/files/4.3.2/
如果您想创建 32 位应用程序,则需要 32 位版本的 cx_freeze。
我正在 cx_freeze 的邮件列表中确认是否有任何方法可以在 Mac 中安装 32 位版本。
【问题讨论】: